JPCM - JDC121 JPCM
Agenda JPCM - JDC122
3
Software performance is Better Performance tuning requires accurate Measurements. JPCM - JDC124 Software Performance Software profiling tools tell you a lot bout memory, But what about CPU?
CPU has three types of Cache: 1.Data Cache 2.Instructions Cache 3.(TLB) Translation Lookaside Buffer Smaller and faster memory that has a copy of data that is most frequently used. Saves a lot of latency time consumed in accessing RAM. Data Cache is leveled up to three layer (L1,L2,L3).... CPU Cache JPCM - JDC125
CPU RAM Core1Core2Core3Core4 L1 L2 L3 CPU Cache JPCM - JDC126
7 CPU Utilization(OS tools) Shows the portion of time slots that the CPU scheduler in the OS could assign to execution of running programs or the OS itself
JPCM - JDC128 Intel PCM & JPCM PCM is a C++ code from Intel to read data from PMU (Performance Monitoring Unit) Supports Intel Xeon 5500, 5600, 7500, E7 and Core i7 processor The following metrics are supported: Core: 1.Instructions retired 2.Elapsed core clock ticks 3.Core frequency. 4.L2 cache hits and misses, L3 cache misses and hits. Uncore: 1.Read bytes from memory controller(s). 2.Bytes written to memory controller(s). 3.Data traffic transferred by the Intel® QuickPath Interconnect links
Get The CPU info CPU Family CPU Model Threads Per Core Number of Cores Number of Sockets Get counter State Core Counter State Socket Counter State System Counter State What can you do with JPCM? JPCM - JDC129
10 L2/L3 Metrics Cycles lost due to cache misses Cache hits Caches misses Cache hit ratio Other Metrics Execution usage Total Execution usage Cycles Instructions retried Around 24 metrics are exposed What can you do with JPCM?
Come out with the CPU counters JPCM - JDC1211 How it can be used? Take a snapshot (Before) Run your code Take another snapshot (After)
Native C++ JAVA JMXJMX JNI PCM Under the Hood! JPCM - JDC1212
DEMO
JPCM - JDC1214