by trishume on 1/27/22, 10:22 PM with 18 comments
by haberman on 1/28/22, 5:44 AM
Modern processors will look hundreds of instructions into the future and try to start executing them as soon as possible. Branches are predicted far in advance of when they can actually be evaluated. Many instructions can be executing simultaneously. A clean tidy flame graph showing 1-3ns slices (~5 cycles) cannot help but be a vast simplification of what the CPU is really doing.
The linked page about Processor Trace says this:
> instruction data (control flow) is perfectly accurate but timing information is less accurate
The article mentions using magic-trace to detect changes in inlining decisions made by the compiler. This is a case where it will shine, since PT can perfectly capture the control flow, and it doesn't necessarily rely on having perfect timestamps for everything.
by temikus on 1/27/22, 11:02 PM
by signa11 on 1/28/22, 11:16 AM
by carlmr on 1/28/22, 9:10 AM
by gnufx on 1/28/22, 3:42 PM
by silverlake on 1/28/22, 1:50 PM