JPCM (Java Performance Counter Monitor)

As we all in a deep and sincere search for better optimized Software, performance is the focus of efforts. Better performance can not be obtained without accurate measuring of Hardware. 
CPU utilization is key element in performance measurement. CPU utilization number obtained from operating system (OS) is a metric that has been used for many purposes like product sizing, compute capacity planning, job scheduling, and so on.
The current implementation of this metric shows the portion of time slots that the CPU scheduler in the OS could assign to execution of running programs or the OS itself; the rest of the time is idle. For compute-bound workloads, the CPU utilization metric calculated this way predicted the remaining CPU capacity very well for architectures of 80ies.
The advances in computer architecture made this algorithm an unreliable metric because of introduction of multi core and multi CPU systems, multi-level caches, non-uniform memory, simultaneous multithreading (SMT), pipelining, out-of-order execution, etc.
The good news is that Intel processors already provide the capability to monitor performance events inside processors. 
In order to obtain a more precise picture of CPU resource utilization we rely on the dynamic data obtained from the so-called performance monitoring units (PMU) implemented in Intel’s processors. We concentrate on the advanced feature set available in the current Intel Xeon 5500, 5600, 7500, E7 and Core i7 processor series [2-4]
JPCM, is an open source java API exposing the native code from Intel to Java Performance Tools in order to provide a better measurements of CPU Utilization.
05:00 pm to 06:00 pm
Experience level: 
Average: 5 (4 votes)
Average: 4.3 (4 votes)
Time allocated: 
Average: 4.5 (4 votes)