Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| research:software:tod:perfomance [2007/08/20 17:53] – 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, | ||

