Skip to content

0.8.0

Compare
Choose a tag to compare
@koute koute released this 16 Nov 09:57
· 178 commits to master since this release
7d34d88

Major changes:

  • Significantly lower CPU usage when temporary allocation culling is turned on
  • Each thread has now its own first-level backtrace cache; this might result in higher memory usage when profiling
  • The MEMORY_PROFILER_BACKTRACE_CACHE_SIZE environment variable knob was replaced with MEMORY_PROFILER_BACKTRACE_CACHE_SIZE_LEVEL_1 and MEMORY_PROFILER_BACKTRACE_CACHE_SIZE_LEVEL_2 to control the size of the per-thread caches and the global cache respectively
  • The MEMORY_PROFILER_PRECISE_TIMESTAMPS environment variable knob was removed (always gathering precise timestamps is fast enough on amd64)
  • The default value of MEMORY_PROFILER_TEMPORARY_ALLOCATION_PENDING_THRESHOLD is now unset, which means that the allocations will be buffered indefinitely until they're either culled or until they'll live long enough to not be eligible for culling (might increase memory usage in certain cases)
  • Backtraces are now not emitted for allocations which were completely culled
  • You can now see whether a given allocation was made through jemalloc, and filter according to that
  • You can now see when a given allocation group reached its maximum memory usage was, and filter according to that
  • New scripting APIs:
    • Graph::show_memory_usage
    • Graph::show_live_allocations
    • Graph::show_new_allocations
    • Graph::show_deallocations
    • AllocationList::only_group_max_total_usage_first_seen_at_least
    • AllocationList::only_jemalloc
  • New subcommand: extract (will unpack all of the files embedded into a given data file)
  • The strip subcommand will now not buffer allocations indefinitely when using the --threshold option, which results in a significantly lower memory usage when stripping huge data files from long profiling runs
  • malloc_usable_size now works properly when compiled with the jemalloc feature
  • reallocarray doesn't segfault anymore
  • The compilation should now work on distributions with an ancient version of Yarn