3 ms·
This bug is fixed in the latest insider builds at least. Using the author's own testing tool: With the Spring 2018 release: F:\tmp>.\ProcessCreatetests.e
by pitterpatter 8y ago
This bug is fixed in the latest insider builds at least.
Using the author's own testing tool:
With the Spring 2018 release:
F:\tmp>.\ProcessCreatetests.exe
Main process pid is 46940.
Testing with 1000 descendant processes.
Process creation took 2.309 s (2.309 ms per process).
Lock blocked for 0.003 s total, maximum was 0.000 s.
Average block time was 0.000 s.
Process termination starts now.
Process destruction took 0.656 s (0.656 ms per process).
Lock blocked for 0.001 s total, maximum was 0.000 s.
Average block time was 0.000 s.
Elapsed uptime is 7.08 days.
Awake uptime is 7.08 days.
F:\tmp>.\ProcessCreatetests.exe -user32
Main process pid is 44584.
Testing with 1000 descendant processes with user32.dll loaded.
Process creation took 2.624 s (2.624 ms per process).
Lock blocked for 0.014 s total, maximum was 0.001 s.
Average block time was 0.000 s.
Process termination starts now.
Process destruction took 1.617 s (1.617 ms per process).
Lock blocked for 1.122 s total, maximum was 0.648 s.
Average block time was 0.026 s.
Elapsed uptime is 7.08 days.
Awake uptime is 7.08 days.
With an insider build:
C:\tmp>.\ProcessCreatetests.exe
Main process pid is 9928.
Testing with 1000 descendant processes.
Process creation took 2.440 s (2.440 ms per process).
Lock blocked for 0.003 s total, maximum was 0.002 s.
Average block time was 0.000 s.
Process termination starts now.
Process destruction took 1.306 s (1.306 ms per process).
Lock blocked for 0.003 s total, maximum was 0.001 s.
Average block time was 0.000 s.
Elapsed uptime is 4.78 days.
Awake uptime is 3.93 days.
C:\tmp>.\ProcessCreatetests.exe -user32
Main process pid is 14144.
Testing with 1000 descendant processes with user32.dll loaded.
Process creation took 4.756 s (4.756 ms per process).
Lock blocked for 0.022 s total, maximum was 0.004 s.
Average block time was 0.000 s.
Process termination starts now.
Process destruction took 1.823 s (1.823 ms per process).
Lock blocked for 0.003 s total, maximum was 0.001 s.
Average block time was 0.000 s.
Elapsed uptime is 4.78 days.
Awake uptime is 3.93 days.
There's no longer a difference in lock blocked time whether or not you load user32 during process destruction. Nor does the very obvious mouse stuttering still happen.
- brucedawson 8y agoWoah! That is fascinating. I had heard nothing about this. Your uptime is a bit shorter on the insider build but the change in lock blocking is too dramatic to be explained by that. I notice that all of the elapsed times are worse on the insider build - is that perhaps a slower machine? And are there enough CPUs on that machine to trigger the bug? That is, I'd like to believe that the bug is fixed but I'm skeptical.
- pitterpatter 8y agoTrue, the above comparison might not have been the most scientific :P The Spring 2018 results were run on a much more powerful desktop than the surface pro 3 used for the insider results. Here is the results for the April 2018 Update rerun on the same surface for a more apples to apples comparison: C:\tmp>.\ProcessCreatetests.exe Main process pid is 6448. Testing with 1000 descendant processes. Process creation took 4.382 s (4.382 ms per process). Lock blocked for 0.007 s total, maximum was 0.000 s. Average block time was 0.000 s. Process termination starts now. Process destruction took 0.592 s (0.592 ms per process). Lock blocked for 0.002 s total, maximum was 0.002 s. Average block time was 0.000 s. Elapsed uptime is 0.01 days. Awake uptime is 0.01 days. C:\tmp>.\ProcessCreatetests.exe -user32 Main process pid is 11364. Testing with 1000 descendant processes with user32.dll loaded. Process creation took 4.707 s (4.707 ms per process). Lock blocked for 0.009 s total, maximum was 0.000 s. Average block time was 0.000 s. Process termination starts now. Process destruction took 1.248 s (1.248 ms per process). Lock blocked for 0.904 s total, maximum was 0.902 s. Average block time was 0.181 s. Elapsed uptime is 0.01 days. Awake uptime is 0.01 days. The mouse movement hanging behaviour is easily evident with the April 2018 release. I didn't notice the same on the insider build.