The lightweight profiling (LWP) proposal extends the AMD64 architecture (in both legacy and long mode) to allow user mode (CPL=3) processes to gather performance data about themselves with very low overhead. The goal is to enable modules such as dynamic optimizers and managed runtime environments to monitor the currently running program with high accuracy and resolution, thereby allowing them to report on performance problems and opportunities and fix them immediately.
The proposed extensions allow a program to gather performance data and examine it either by polling or by taking an occasional interrupt. It introduces minimal additional state to the CPU and the process. It differs from the existing performance counters and IBS in that large quantities of data are collected with no interrupts, considerably reducing the overhead of using performance feedback. In fact, LWP can be used with a polling scheme that requires no data collection interrupts at all. LWP also allows a user mode program to control its data collection without calling a driver. Finally, LWP runs within the context of a thread, so it can be used by multiple processes within a system at the same time.
星期二, 8月 14, 2007
Lightweight Profiling Proposal