mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-08-09 02:25:21 +00:00
…
|
||
---|---|---|
.. | ||
src | ||
CMakeLists.txt | ||
Kconfig | ||
prj-assert.conf | ||
prj.conf | ||
README.rst | ||
testcase.yaml |
POSIX Thread Benchmark ###################### Overview ******** This benchmark creates and joins as many threads as possible within a configurable time window. It provides a rough comparison Zephyr's POSIX threads (pthreads) with Zephyr's kernel threads (k_threads) API, highlighting the overhead of the POSIX. Ideally, this overhead would shrink over time. Sample output of the benchmark:: *** Booting Zephyr OS build v4.0.0-1410-gfca33facee37 *** ASSERT: y BOARD: qemu_riscv64 NUM_CPUS: 1 TEST_DELAY_US: 0 TEST_DURATION_S: 5 SMP: n API, Thread ID, time(s), threads, cores, rate (threads/s/core) k_thread, ALL, 5, 47663, 1, 9532 pthread, ALL, 5, 28180, 1, 5636 PROJECT EXECUTION SUCCESSFUL To observe periodic statistics on a per-thread basis in addition to the summary of statistics printed at the end of execution, use CONFIG_TEST_PERIODIC_STATS. Several other options can be tuned on an as-needed basis: - CONFIG_MP_MAX_NUM_CPUS - Number of CPUs to use in parallel. - CONFIG_TEST_DURATION_S - Number of seconds to run the test. - CONFIG_TEST_DELAY_US - Microseconds to delay between pthread join and create. - CONFIG_TEST_KTHREADS - Exercise k_threads in the test app. - CONFIG_TEST_PTHREADS - Exercise pthreads in the test app. - CONFIG_TEST_STACK_SIZE - Size of each thread stack in this test. The following table summarizes the purposes of the different extra configuration files that are available to be used with this benchmark. A tester may mix and match them allowing them different scenarios to be easily compared the default. +-----------------------------+----------------------------------------+ | prj-assert.conf | Enable assertions for API verification | +-----------------------------+----------------------------------------+