Colorado
Our trip with family to Keystone, Breckinridge, Rocky Mountain National Park.
Our trip with family to Keystone, Breckinridge, Rocky Mountain National Park.
Our trip to Miami Beach.
Our trip to Bozeman, Yellowstone, Glacier.
The first two posts in this series were about collecting data: CPU and wall-clock samples from a signal handler, and heap samples from inside the allocator. Both produce a pile of stack traces with counts attached.
In Part 1 I wrote about sampling where a Python program spends its time. Memory usage is the other half of the question. Like time profiling, you can trace every allocation (which is what the standard library tracemalloc does), but this is far too expensive to leave enabled in a production server, so it usually gets enabled after the problem appears, on a process that no longer contains the interesting state.