Skip to content

[HOW TO] Generate benchmarks metrics

Maciej Perkowski edited this page Nov 16, 2020 · 1 revision

All benchmark tests for the Zephyr RTOS are stored in its codebase here

We recommend running a test called “latency_measure” first. This benchmark measures the latency of selected kernel capabilities, including:

  • Measure time to switch from ISR back to interrupted thread
  • Measure time from ISR to executing a different thread (rescheduled)
  • Measure average time to signal a semaphore then test that semaphore
  • Measure average time to signal a semaphore then test that semaphore with a context switch
  • Measure average time to lock a mutex then unlock that mutex
  • Measure average context switch time between threads using (k_yield)
  • Measure average context switch time between threads (coop)
  • Time it takes to suspend a thread
  • Time it takes to resume a suspended thread
  • Time it takes to create a new thread (without starting it)
  • Time it takes to start a newly created thread

To run that test please follow common instructions for building and flashing Zephyr's applications:

$ cd ~/zephyrproject/zephyr
$ west build -p -b reel_board tests/benchmarks/latency_measure/

Open a serial port using a second terminal window, for example

$ sudo minicom -D /dev/ttyACM0 -b 115200
$ west flash

View the result in the terminal output