English 中文(简体)
Outliers during Performance Evaluation
原标题:

I am trying to do some performance measurements using Intels RDTSC, and it is quite odd the variations I get during different testruns. In most cases my benchmark in C needs 3000000 Mio cycles, however, exactly the same execution can in some cases take 5000000, almost double as much. I tried to have no intense workloads running in parallel so that I get good performance estimations. Anyone an idea where this huge timing variations can come from? I know that interrupts and stuff can happening, but I did not expect such huge variations in timing!

PS.: I am running it on a Pentium processor with Linux running on it.

Thanks for feedback, John

问题回答

I think the answer is in:

I tried to have no intense workloads running in parallel

You have insufficient control over this in a modern OS.

According to this Wikipedia article, the RDTSC (time stamp counter) cannot be used reliably for benchmarking on multi-core systems. There is no promise that all cores have the same value in the time stamp register.

On Linux, it is better to use the POSIX clock_gettime function.

You have to take the cache of most modern processors into account. Maybe another process evicts your program s cache content in the case where you measured the long running time. As Henk pointed out, lots of stuff happen in a modern OS that you can t control that much.





相关问题
Signed executables under Linux

For security reasons, it is desirable to check the integrity of code before execution, avoiding tampered software by an attacker. So, my question is How to sign executable code and run only trusted ...

encoding of file shell script

How can I check the file encoding in a shell script? I need to know if a file is encoded in utf-8 or iso-8859-1. Thanks

How to write a Remote DataModule to run on a linux server?

i would like to know if there are any solution to do this. Does anyone? The big picture: I want to access data over the web, using my delphi thin clients. But i´would like to keep my server/service ...

How can I use exit codes to run shell scripts sequentially?

Since cruise control is full of bugs that have wasted my entire week, I have decided the existing shell scripts I have are simpler and thus better. Here is what I have so far svn update /var/www/...

Good, free, easy-to-use C graphics libraries? [closed]

I was wondering if there were any good free graphics libraries for C that are easy to use? It s for plotting 2d and 3d graphs and then saving to a file. It s on a Linux system and there s no gnuplot ...

热门标签