Products
Performance
Performance testing to compare different RTOS is not simple. Some systems implement features that are not tested at all, some system do more error checking, etc. has been tested based on the open source Thread-Metric benchmark test-suite produced by Express-Logic Inc.
Some competitors could not comply with some of the tests and one of the missing contenders is FreeRTOS because their Licenses agreement does not allow performance tests. Download the software and draw your own conclusions why FreeRTOS does not publish their tests. Please refer to the Microchip Online Discussion Groups for their result and that can be found here.
The results of the tests are in the table and graph below and Q-Kernel wins with a distance on the average performance score. A more detailed description of the tests is available as a download.
Cooperative Scheduling | Pre-emptive Scheduling | Interrupt Processing | Interrupt |
Message Processing | Synchronisation Processing | Memory Processing | |
Q▪Kernel v6.0 | 17,141,251 | 11,741,503 | 18,461,234 | 6,315,823 | 10,908,076 | 32,431,922 | 22,221,851 |
AVIX v4.0 | 18,730,514 | 11,460,380 | 17,125,013 | 6,023,870 | 8,151,857 | 27,878,435 | 12,618,419 |
ThreadX | 11,847,800 | 4,870,885 | 6,918,050 | 3,052,151 | 6,928,383 | 15,337,354 | 12,863,624 |
TNKernel | 4,138,692 | 7,784,052 | 3,180,224 | 5,722,266 | 13,623,702 | 9,745,907 | |
uc/OS-II | 3,909,085 | 5,259,998 | 7,387,612 | 10,293,318 | 6,814,817 | ||
AVA | 1,724,948 | 5,207,762 | 1,260,190 | 2,761,154 | 7,514,799 | 10,235,182 |
Remarks
The Q▪Kernel results are the best in the business, but it's good to mention that Q▪Kernel can even do better if the tests were built for a Dual-Mode RTOS instead for a traditional RTOS.
- Fibers were not used to comply with the Thread-Metric test, so the real performance of Q-Kernel is even better. Fibers are 89% faster than traditional threads.
- Q▪Kernel has two ways to implement sending and receiving of messages. Pipes can be used to send information by value, and queues to send information by reference. Because the Thread-Metric tests send messages by value Q-Kernel has implemented the test with pipes.
- qKernel memory management is 100% deterministic when a memory pool is created before use.
Purchase Q▪Kernel-Pro Licenses and/or Pro support.
Download the latest release of the Q▪Kernel source code and documentation.
Get the answers to some common questions about Q▪Kernel
For Q▪Kernel-Pro support contact us.