1
0
Fork 0
mirror of https://github.com/zephyrproject-rtos/zephyr.git synced 2025-12-13 22:45:14 +01:00
[HOW TO] Generate benchmarks metrics
Maciej Perkowski edited this page 2020-11-16 12:31:01 +01:00

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