, Windows? , - . ? Intel , , Intel® VTune™ Amplifier. , , Windows, Vtune AMD CodeAnalyst. , . , « ». , , perf stat, Linux. Windows… .
PMU- Intel® VTune™ Amplifier. . , . .., , . , , ( github ).
, , . Windows- Windows. PMU- — , . , Intel® VTune™ Amplifier, , , . , , Windows, Vtune ( ).
?
xperf. Windows Performance Toolkit, Windows Assessment and Deployment Kit (Windows ADK). xperf PATH.
-
Windows Driver Kit
Visual Studio
Windows SDK
Tracelog PATH, : "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\
". .
, .
tracelog xperf
, , . ( ) , ( ):
tracelog.exe -start counters -f counters.etl -eflag CSWITCH+PROC_THREAD+LOADER -PMC BranchMispredictions,BranchInstructions:CSWITCH <your app> xperf -stop counters xperf -merge counters.etl pmc_counters_merged.etl xperf -i pmc_counters_merged.etl -o pmc_counters.txt
pmccounters.txt, . , :
Pmc, TimeStamp, ThreadID, BranchMispredictions, BranchInstructions
CSwitch, TimeStamp, New Process Name ( PID), New TID, NPri, NQnt, TmSinceLast, WaitTime, Old Process Name ( PID), Old TID, OPri, OQnt, OldState, Wait Reason, Swapable, InSwitchTime, CPU, IdealProc, OldRemQnt, NewPriDecr, PrevCState, OldThrdBamQosLevel, NewThrdBamQosLevel
:
Pmc, 214810, 5956, 1101534, 44324578
CSwitch, 214810, ConditionalCount.exe (14224), 5956, 9, -1, 6, 0, System ( 4), 560, 12, -1, Waiting, WrQueue, NonSwap, 6, 1, 3, 84017152, 0, 0, Important, Important
Pmc, 214821, 14460, 1101713, 44326484
CSwitch, 214821, csrss.exe ( 888), 14460, 14, -1, 73556, 5, ConditionalCount.exe (14224), 5956, 9, -1, Waiting, WrLpcReply, Swapable, 11, 1, 3, 77701120, 0, 0, Important, Important
, CSwitch Pmc. , . (ConditionalCount.exe
) (csrss.exe
). , Old Process Name (PID) CSwitch 214821. .. , ConditionalCount.exe
( 214821 214810).
BranchMispredictions . , , Pmc. 1101713 - 1101534 = 179 . , .
: , , Linux perf stat
. , , . - . , - , .
Python
python.exe etwpmcparser.py pmccounters.txt <your app>
, (Win 10, Intel (R) Core (TM) i5-7300U).
Process name: branch misp rate, [br_misp, total branc]
ConditionalCount.exe (14224): 21.91%, [109184040, 498250335], 3690 context switches, time: 1093072
ConditionalCount.exe (10964): 0.07%, [369677, 496453009], 761 context switches, time: 257492
Vtune .
?
> tracelog.exe -profilesources Help
Id Name Interval Min Max
--------------------------------------------------------------
0 Timer 10000 1221 1000000
2 TotalIssues 65536 4096 2147483647
6 BranchInstructions 65536 4096 2147483647
10 CacheMisses 65536 4096 2147483647
11 BranchMispredictions 65536 4096 2147483647
19 TotalCycles 65536 4096 2147483647
25 UnhaltedCoreCycles 65536 4096 2147483647
26 InstructionRetired 65536 4096 2147483647
27 UnhaltedReferenceCycles 65536 4096 2147483647
28 LLCReference 65536 4096 2147483647
29 LLCMisses 65536 4096 2147483647
30 BranchInstructionRetired 65536 4096 2147483647
31 BranchMispredictsRetired 65536 4096 2147483647
- , Vtune perf Linux. , (. ). - , , , .
-, PMC, , tracelog
, python, .
- , . .
« ».