This is work done at IBM Research and Development during the course of my master thesis. There, I have been working on performance evaluation of file processing on mainframes. The idea was to rewrite the unmodified binary of the application in main memory. The challenge is to do this online on productive systems, which are usually driven at a very high load.
Due to the ever increasing size and complexity of programs, the structured analysis
of a program's performance is often hard and inaccurate. Instead, the behavior
of a program is often just measured to identify performance bottlenecks for future optimization of the program's
source code. In mainframe environments this
analysis is especially hard as the system load is typically very high. Furthermore,
the level of virtualization is high, which makes the program depend on the overall
system performance. To cover this fluctuation a long time analysis is required. To
our knowledge no work that efficiently investigates those special circumstances
exists yet.
The analysis can only be executed efficiently as long as the data logged is
constant in space. Additionally, the performance penalty needs to be negligible to
keep the analysis's influences on the investigated program at a minimum.
We achieve those requirements by using dynamic code insertion to patch the
investigated program in-memory to execute our instrumentation code at specific
positions. To keep the speed of the code as fast as possible, optimizations for
the architecture and the source code's characteristics are required. The placement
of instrumentation code is minimized in terms of execution frequency by just instrumenting very few, seldom
executed and efficiently patchable instructions. For
performance reasons, we choose to only increase a counter value in the instrumentation code. A profile
specifying the execution frequency of all instructions is
then calculated from the measured data.
The thesis itself (as all theses at IBM) cannot be published for legal reasons. If you are interested, I would be happy to answer questions or send the thesis via email.
SHARE award, second runner up, for my master thesis