While working with heap_stat (a Python script based on PYKD library for running Python scripts in a Windbg environment), I'm getting frustrated by the enormous time this script needs for doing its job.
So, I've started a profiling session, using "Very Sleepy", and this gave following result:
Name Exclusive Inclusive % Excl. %Incl. Module
RtlValidSecurityDescriptor 2561.56s 5123.12s 50.00% 100.00% ntdll
ZwWaitForSingleObject 1280.78s 1280.78s 25.00% 25.00% ntdll
NtUserWaitMessage 1279.73s 1279.73s 24.98% 24.98% win32u
As you can see, most of the time is spent in a function, checking some validity (which I don't think is needed). Is there a way to disable this check (Windows configuration, registry setting, ...)?
Edit after first comment
As an xperf
analysis has been requested, I've performed following xperf
commands:
Start the profiling:
xperf -start "DDS_LoggerName" -StackWalk ObjectCreate+ObjectDelete+ObjectReference -heap -Pids 28068
Stop the profiling:
xperf -stop "DDS_LoggerName"
I've opened the result (incomplete, because I first wanted to see what the result looks like) using the Windows Performance Analyzer
, but it makes no sense to me. I believe my xperf
configuration is bad. How do I need to start up an xperf
profiling in order to be able to measure which function takes which amount of time?