What ‘memory dump’ is in human language?
It is a snapshot of an application, similar to real-world picture – just an array of bytes:
Application picture Real world picture
How to open memory snapshot?
As you need software to open pictures you need WinDBG to open memory snapshots.
What is inside the snapshot?
Typical park picture
- Trees, humans, birds
- The timestamp it was taken
- Clues about ongoing activities
- Tree top bend hints wind
- Sport outfit hints jogging
- A queue to the coffee shop
- Some fallen branches
Application picture
- All objects
- The timestamp it was collected
- Thread call stacks
- SQL – hints DB activity
- IIS7Request – hints ASP.NET
- How many entries in queue
- No longer needed data
What cannot be answered from one snapshot?
Typical park picture
- When the tree was planted?
- What is the speed of the wind?
- For how long the guy is running?
- How fast the shop queue is being processed?
- When did the branch fall?
Application picture
- When was an object created?
- How fast operation is executed?
- For how long the request is processed?
- Is the processing queue grows or shrinks?
- When was the object last used?
MYTH: WHY SLOW FROM SINGLE SNAPSHOT
At least sequential 2 pictures depicting same activity are needed. The progress (f.e. number of records processed/(queue length)) is checked in both snapshots and correlated to time stamp difference.
CONFIRMED: CACHE STATS
Caching layer is typically implemented based on objects, that are captured in single snapshot.

CONFIRMED: ONGOING SQL COMMANDS
SQL commands are implemented as objects, hence visible in a single snapshot.

CONFIRMED: ANYBODY CAN OPEN SNAPSHOT
All you need is proper program to open it. Assistant file (translator) might be needed from exact machine in case not found in web automatically.
Update: I’ve published Loading memory snapshot into debugger post for you.
One thought on “Memory dumps intro”