• ofrobots's avatar
    [profiler] Implement POC Sampling Heap Profiler · e5a99478
    ofrobots authored
    This implements a proof-of-concept sampling based heap profiler inspired by
    tcmalloc's heap profiler [1] and Go's mprof/memprofile [2].
    
    The basic idea is the sample allocations using a randomized Poisson process. At
    any point in time we can cheaply request the set of live sample objects that
    should be a representative sample of heap. Samples include stack-traces from the
    allocation sites, making this an effective tool for memory leak debugging.
    
    Unlike AllocationTracking, this is intended to be cheap and usable online in
    production.
    
    The proof-of-concept is only sampling new-space allocations at this point.
    Support for sampling paged space and native allocations is anticipated in the
    future.
    
    [1] http://goog-perftools.sourceforge.net/doc/heap_profiler.html
    [2] http://blog.golang.org/profiling-go-programs
    
    Review URL: https://codereview.chromium.org/1555553002
    
    Cr-Commit-Position: refs/heads/master@{#33448}
    e5a99478
test-heap-profiler.cc 107 KB