I am using sysbench to profile the CPU performance of my two NXP IMX based devices. One is IMX6 and the other one is IMX8. I tried running the following command on both the devices.
IMX8 :sysbench --num-threads=4 --validate=on --test=cpu --cpu-max-prime=500000 --events=500 --time=120 run
Output:
sysbench 1.0.17 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 4
Validation checks: on.
Initializing random number generator from current time
Prime numbers limit: 500000
Initializing worker threads...
Threads started!
CPU speed:
events per second: 13.80
General statistics:
total time: 36.2101s
total number of events: 500
Latency (ms):
min: 279.18
avg: 288.61
max: 593.26
95th percentile: 325.98
sum: 144307.40
Threads fairness:
events (avg/stddev): 125.0000/0.71
execution time (avg/stddev): 36.0768/0.08
IMX6: sysbench --num-threads=4 --validate=on --test=cpu --cpu-max-prime=500000 --max-requests=500 run
Output:
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 4
Additional request validation enabled.
Doing CPU performance benchmark
Threads started!
Done.
Maximum prime number checked in CPU test: 500000
Test execution summary:
total time: 800.5712s
total number of events: 500
total time taken by event execution: 3198.2560
per-request statistics:
min: 6336.82ms
avg: 6396.51ms
max: 6625.35ms
approx. 95 percentile: 6528.87ms
Threads fairness:
events (avg/stddev): 125.0000/0.00
execution time (avg/stddev): 799.5640/0.65
The difference in command structure is due to difference in sysbench versions. I do understand that both CPU has its differences in terms of processing capabilities but is this difference of 36sec vs 800sec execution time making sense or this could be due to difference in the implementation of the sysbench tool in two different versions.