-
Recent Posts
Categories
- AltDevBlogADay
- Bugs
- Chromium
- Code analysis
- Code Reliability
- Commuting
- Computers and Internet
- Debugging
- Documentation
- Drinks
- Environment
- Floating Point
- Fractals
- Fun
- Gaming
- Investigative Reporting
- Linux
- Math
- memory
- Performance
- Programming
- Rants
- Security
- Symbols
- Travel
- uiforetw
- Uncategorized
- Unicycling
- Visual Studio
- WLPG
- xperf
Follow me on Twitter
My TweetsMeta
Category Archives: Programming
GDI leaks and the importance of luck
In May 2019 I was asked to look at a potentially serious Chrome bug. I initially misdiagnosed it as unimportant, thus wasting two valuable weeks, and when I rejoined the investigation it was the number one browser-process crash in Chrome’s … Continue reading
Big Project Build Times–Chromium
A twitter discussion on build times and source-file sizes got me interested in doing some analysis of Chromium build times. I had some ideas about what I would find (lots of small source files causing much of the build time) … Continue reading
Creating a Public Symbol Server, Easily
I’ve been a big fan of symbol servers for years. They are a part of the Microsoft/Windows ecosystem that is far better than anything I have seen for other operating systems. With Microsoft’s and Chrome’s symbol servers configured I can … Continue reading
O(n^2), again, now in WMI
I recently hit some multi-minute delays on my workstation. After investigating I found that the problem was due to a lock being held for five minutes, and during that time the lock-holder was mostly just spinning in a nine-instruction loop. … Continue reading
Posted in Investigative Reporting, Programming, Rants, uiforetw, xperf
Tagged complexity, ETW, O(n^2), performance, WMI
45 Comments
Heap Snapshots–Tracing All Heap Allocations
I’ve recently started using heap snapshots on Windows to track heap allocations. I was able to use heap snapshots to record call stacks for all outstanding allocations in Chrome’s browser process over a full two weeks, letting me account for … Continue reading
Posted in Documentation, Performance, Programming, uiforetw, xperf
Tagged heap snapshots, memory
23 Comments
63 Cores Blocked by Seven Instructions
I seem to have a habit of writing about super powerful machines whose many cores are laid low by misuse of locks. So. Yeah. It’s that again. But this one seems particularly impressive. I mean, how often do you have … Continue reading
Posted in Investigative Reporting, Performance, Programming, uiforetw, xperf
Tagged ETW, ntfs, wpa
39 Comments
When Your Profiler Lies
Last week I wrote about the performance consequences of inadvertently loading gdi32.dll into processes that are created and destroyed at very high rates. This week I want to share some techniques for digging deeper into this behavior, and the odd … Continue reading
Posted in Investigative Reporting, Performance, Programming, uiforetw, xperf
Tagged GDI, process shutdown, UserCrit
20 Comments
A Not-Called Function Can Cause a 5X Slowdown
Subtitle: Making Windows Slower Part 3: Process Destruction In the summer of 2017 I wrestled with a Windows performance problem. Process destruction was slow, serialized, and was blocking the system input queue, leading to repeated short mouse-movement hangs when building … Continue reading
Posted in Investigative Reporting, Performance, Programming
Tagged GDI, process shutdown, UserCrit
14 Comments
Making Windows Slower Part 2: Process Creation
Windows has long had a reputation for slow file operations and slow process creation. Have you ever wanted to make these operations even slower? This weeks’ blog post covers a technique you can use to make process creation on Windows … Continue reading
Posted in Code Reliability, Investigative Reporting, Performance, Programming
Tagged Application Verifier, crashing, pageheap
20 Comments
Making Windows Slower Part 1: File Access
Windows has long had a reputation for slow file operations and slow process creation. Have you ever wanted to make these operations even slower? This weeks’ blog post covers a technique you can use to make all file operations on … Continue reading
Posted in Investigative Reporting, Performance, Programming, xperf
Tagged FileSystemWatcher, notifications, Windows
25 Comments