Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
research:software:tod:perfomance [2007/08/20 17:52] – admin | research:software:tod:perfomance [2007/08/20 17:54] (current) – admin | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== performance overhead ====== | ||
+ | In this page we take a closer look at the performance overhead of TOD. Logging every event of a program' | ||
+ | |||
+ | Roughly speaking, a 1ghz machine could generate about 0.1- 10< | ||
+ | |||
+ | ===== Benchmarks ===== | ||
+ | |||
+ | So as to get an idea of the runtime overhead we ran a set of benchmarks. We created three very simple programs with different profiles: | ||
+ | -Few method calls, mostly arithmetic operations and access to local variables | ||
+ | -Lots of calls to instrumented methods | ||
+ | -Lots of calls to uninstrumented methods | ||
+ | |||
+ | The benchmarking code can be found in the class tod.test.Benchmark. They were run on SVN revision 945. | ||
+ | |||
+ | Machine: | ||
+ | OS: Kubuntu Linux 5.10, without X11, minimal services running. | ||
+ | Java: Sun 1.5.0_04 | ||
+ | |||
+ | Results: | ||
+ | | | | Execution times in seconds | | | | ||
+ | | | | Without TOD | With TOD | ratio | | ||
+ | | 1 | **Computations** | **2.91** | **2.98** | **1.02** | | ||
+ | | 2 | **Instrumented methods** | **1.45** | **15.59** | **10.77** | | ||
+ | | 3 | **Uninstrumented methods** | **3.71** | **3.93** | **1.06** | | ||
+ | As we immediately see, the worst case is situations in which only instrumented methods are called. Computations and calls to uninstrumented methods incure virtually no overhead. In real applications, |