Dave Day has spent his career writing systems-level software, with a concentration in performance-measuring tools. He began his career in programming in 1972, and has worked in the field continuously since then.
One day, when working on a dump, Dave scanned the few trace records that appeared in it. THIS TIME, he made a new connection: “Trace records contain a LOT of interesting information. Every interrupt generates a Trace Record, but the Trace Table wraps so quickly that I never seem to get enough Trace Records to come to any useful conclusions. WHAT IF I MADE A TIME-STAMPED ‘LOG STREAM’ OUT OF TRACE RECORDS?”
Dave kept that idea in his head for a few years, and finally in 2005, he began the coding effort. Seven years and several hundred thousand lines of code later, z/XPF is a reality.
What makes z/XPF so cool? Well, because it monitors trace records at the processor level continuouslywithout any presence in the address space or hooks to the operating system. The information is just there, and z/XPF merely harvests it. So, z/XPF doesn’t affect the target address space in the way that other profilers do (by stopping/starting the address space).
Also, while other profilers may gather tens of thousands of events per “run”, z/XPF may gather MILLIONS. That’s a much larger statistical pool to draw conclusions from – MUCH more granularity.
Finally, because Trace Records are generated for every interrupt, every SVC, every storage operation, every page fault (and more), z/XPF can SEE things other profilers are blind to due to their design limitations.