|
[ Publications ]
[ Research Opportunities ]
[ Partners & Supporters ]
[ Earlier Work ]
|
|
Online Optimizations Driven by Hardware Performance Monitoring
|
| Florian T. Schneider,
Mathias Payer,
Thomas R. Gross,
Online Optimizations Driven by Hardware Performance Monitoring, Conference on Programming Language Design and Implementation (PLDI 2007), June 2007.
[PLDI_2007.pdf]
|
|
Hardware performance monitors provide detailed direct
feedback about application behavior and are an additional source of
information that a compiler may use for optimization.
A JIT compiler is in a good
position to make use of such information because it is running on the
same platform as the user applications. As hardware platforms become
more and more complex, it becomes more and more difficult to model their
behavior. Profile information that captures general
program properties (like execution frequency of methods or basic blocks)
may be useful, but does not capture sufficient information about the execution
platform.
Machine-level performance data obtained from a hardware performance
monitor can not only direct the compiler to those parts of the program that
deserve its attention but also determine if an optimization step
actually improved the performance of the application.
This paper presents an infrastructure based on a dynamic
compiler+runtime environment for Java that incorporates machine-level
information as an additional kind of feedback for the compiler and
runtime environment. The low-overhead monitoring system provides
fine-grained performance data that can be tracked back to individual
Java bytecode instructions. As an example, the paper presents results
for object co-allocation in a generational garbage collector that optimizes
spatial locality of objects on-line using measurements about cache misses. In
the best case, the execution time is reduced by 14\% and L1 cache misses by 28\%.
|
|
[ Publications ]
[ Research Opportunities ]
[ Partners & Supporters ]
[ Earlier Work ]
|
|