README.md

glibc-malloc-trace-utils

glibc malloc trace post-processing utilities

statistics.c:

Runs over the trace file and produces rudimentary statistics about the allocations e.g. minimum request size in bytes, maximum request size in bytes, and average request size in bytes.

trace_allocs.c:

Print all the allocation requests for a given trace. This program generates one of the data files plotted by trace_plot.m, namely the scatter plot of allocation size requests. The input is the trace file.

hist.sh:

Converts the list of allocations generated by trace_allocs.c into a binned list with unique allocation sizes and counts as output. This generates one of the data files plotted by plot.m, namely the scatter plot of allocation counts by size.

sample.c:

An N-th sample down-sampling program that down-samples a single column of numerical data into N-th samples with min, mean, max, and value at N-th sample. Down-sampling data is the only way to visualize large datasets. Sampling supports starting at a given line offset, and ending at a given ending line offset.

trace_plot.m:

An Octave compatible script to turn load down-sampled plot data into useful graphs for analysis of the workload.

block_size_rss.c:

Compute the "block size" RSS from the raw trace. This does not require any simulation and uses existing information in the trace to provide a rough estimate of the RSS in use by the allocator (not the actual application under test).

trace2wl.c:

Convert a malloc trace format file into a workload file that can be loaded by the malloc simulator.

trace_run.c:

The malloc simulator. It can run a workload file.

trace_dump.c:

Dump a malloc trace in a human readable form.