Differences
This shows you the differences between two versions of the page.
research:software:tod:perfomanceoverhead [2007/08/15 03:26] – created admin | research:software:tod:perfomanceoverhead [2007/08/15 03:28] (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, |