45 lines
2.8 KiB
ReStructuredText
45 lines
2.8 KiB
ReStructuredText
Latency Measurements
|
|
####################
|
|
|
|
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
|
|
* Measure average time to alloc memory from heap then free that memory
|
|
|
|
|
|
Sample output of the benchmark::
|
|
|
|
*** Booting Zephyr OS build zephyr-v2.6.0-1119-g378a1e082ac5 ***
|
|
START - Time Measurement
|
|
Timing results: Clock frequency: 1000 MHz
|
|
Average thread context switch using yield : 9060 cycles , 9060 ns
|
|
Average context switch time between threads (coop) : 9503 cycles , 9503 ns
|
|
Switch from ISR back to interrupted thread : 14208 cycles , 14208 ns
|
|
Time from ISR to executing a different thread : 9664 cycles , 9664 ns
|
|
Time to create a thread (without start) : 3968 cycles , 3968 ns
|
|
Time to start a thread : 12064 cycles , 12064 ns
|
|
Time to suspend a thread : 12640 cycles , 12640 ns
|
|
Time to resume a thread : 12096 cycles , 12096 ns
|
|
Time to abort a thread (not running) : 2208 cycles , 2208 ns
|
|
Average semaphore signal time : 8928 cycles , 8928 ns
|
|
Average semaphore test time : 2048 cycles , 2048 ns
|
|
Semaphore take time (context switch) : 13472 cycles , 13472 ns
|
|
Semaphore give time (context switch) : 18400 cycles , 18400 ns
|
|
Average time to lock a mutex : 3072 cycles , 3072 ns
|
|
Average time to unlock a mutex : 9251 cycles , 9251 ns
|
|
Average time for heap malloc : 13056 cycles , 13056 ns
|
|
Average time for heap free : 7776 cycles , 7776 ns
|
|
===================================================================
|
|
PROJECT EXECUTION SUCCESSFUL
|