Note: This is an obsolete section of the FreeRTOS website. If you want to view these pages but cannot see the menu frame then click here. Otherwise click here to visit the main FreeRTOS website. |
Time measurements were obtained using an oscilloscope attached to a digital output. See the "Tests Performed" section for more details.
Results are with the development tools fully optimized for speed unless otherwise stated.
Test Result 16bit addition 29.2μs 16bit multiplication 33.4μs 16bit division 39.2μs with optimization, 41.6μs with no optimization. 32bit multiplication 148.8μs 32bit subtraction 53μs with optimization, 77.6μs with no optimization. Bubble sort 1.3ms with optimization, 2.3ms with no optimization. Block memory move and compare 1.64ms with optimization, 1.71ms with no optimization. Conditional branch to procedure 244μs with optimization, 191μs with no optimization. Scheduler tick function 42.2μs with optimization, 44.8μs with no optimization. PUSH’ing and POP’ing 249μs
The same inline assembler was used to perform this test with both the Open Watcom and Borland compilers. The very slight discrepancy in the results obtained with the different development tools can be attributed to the setting and clearing of the digital output - which used a C function.
For the conditional branch to procedure test the Open Watcom compiler significantly out performed the Borland compiler. Strangely, the Borland compiler outputs both slower and larger code when optimization is used. This would seem to indicate the optimizer could not cope with or was confused by the source code. I could not isolate one particular optimization option that was causing this peculiarity, and the best performance was obtained with optimization off completely.
Any and all data, files, source code, html content and documentation included in the FreeRTOS distribution or available on this site are the exclusive property of Real Time Engineers Ltd..
See the files license.txt (included in the distribution) and this copyright notice for more information. FreeRTOSTM and FreeRTOS.orgTM are trade marks of Real Time Engineers Ltd..