Releases: gperftools/gperftools
gperftools-2.3.90
gperftools 2.4rc is out!
Here are changes since 2.3:
- enabled aggressive decommit option by default. It was found to significantly improve memory fragmentation with negligible impact on performance. (Thanks to investigation work performed by Adhemerval Zanella)
- added ./configure flags for tcmalloc pagesize and tcmalloc allocation alignment. Larger page sizes have been reported to improve performance occasionally. (Patch by Raphael Moreira Zinsly)
- sped-up hot-path of malloc/free. By about 5% on static library and about 10% on shared library. Mainly due to more efficient checking of malloc hooks.
- improved accuracy of stacktrace capturing in cpu profiler (due to issue found by Arun Sharma). As part of that issue pprof's handling of cpu profiles was also improved.
gperftools-2.3
gperftools 2.3 is out!
Here are changes since 2.3rc:
- ( issue 658 ) correctly close socketpair fds on failure (patch by glider)
- libunwind integration can be disabled at configure time (patch by Raphael Moreira Zinsly)
- libunwind integration is disabled by default for ppc64 (patch by Raphael Moreira Zinsly)
- libunwind integration is force-disabled for OSX. It was not used by default anyways. Fixes compilation issue I saw.
gperftools-2.2.90
gperftools 2.3rc is out!
Most small improvements in this release were made to pprof tool.
New experimental Linux-only (for now) cpu profiling mode is a notable big improvement.
Here are notable changes since 2.2.1:
- ( issue 631 ) fixed debugallocation miscompilation on mmap-less platforms (courtesy of user iamxujian)
- ( issue 630 ) reference to wrong PROFILE (vs. correct CPUPROFILE) environment variable was fixed (courtesy of WenSheng He)
- pprof now has option to display stack traces in output for heap checker (courtesy of Michael Pasieka)
- ( issue 636 ) pprof web command now works on mingw
- ( issue 635 ) pprof now handles library paths that contain spaces (courtesy of user mich...@sebesbefut.com)
- ( issue 637 ) pprof now has an option to not strip template arguments (patch by jiakai)
- ( issue 644 ) possible out-of-bounds access in GetenvBeforeMain was fixed (thanks to user abyss.7)
- ( issue 641 ) pprof now has an option --show_addresses (thanks to user yurivict). New option prints instruction address in addition to function name in stack traces
- ( issue 646 ) pprof now works around some issues of addr2line reportedly when DWARF v4 format is used (patch by Adam McNeeney)
- ( issue 645 ) heap profiler exit message now includes remaining memory allocated info (patch by user yurivict)
pprof code that finds location of /proc/pid/maps in cpu profile files is now fixed (patch by Ricardo M. Correia) - (issue 654) pprof now handles "split text segments" feature of Chromium for Android (patch by simonb)
- ( issue 655 ) potential deadlock on windows caused by early call to getenv in malloc initialization code was fixed (bug reported and fix proposed by user zndmitry)
- incorrect detection of arm 6zk instruction set support (-mcpu=arm1176jzf-s) was fixed. (Reported by pedronavf on old issue-493)
- new cpu profiling mode on Linux is now implemented. It sets up separate profiling timers for separate threads. Which improves accuracy of profiling on Linux a lot. It is off by default. And is enabled if both librt.f is loaded and CPUPROFILE_PER_THREAD_TIMERS environment variable is set. But note that all threads need to be registered via ProfilerRegisterThread.
gperftools-2.2.1
gperftools 2.2.1 is out!
Here's list of fixes:
- issue 626 was closed. Which fixes initialization of statically linked tcmalloc.
- issue 628 was closed. It adds missing header file into source tarball. This fixes for compilation on PPC Linux.
gperftools-2.2
gperftools 2.2 is out!
Here are notable changes since 2.2rc:
- issue 620 (crash on windows when c runtime dll is reloaded) was fixed
gperftools-2.1.90
gperftools 2.2rc is out!
Here are notable changes since 2.1:
- a number of fixes for a number compilers and platforms. Notably Visual Studio 2013, recent mingw with c++ threads and some OSX fixes.
- we now have mips and mips64 support! (courtesy of Jovan Zelincevic, Jean Lee, user xiaoyur347 and others)
- we now have aarch64 (aka arm64) support! (contributed by Riku Voipio)
- there's now support for ppc64-le (by Raphael Moreira Zinsly and Adhemerval Zanella)
- there's now some support of uclibc (contributed by user xiaoyur347)
- google/ headers will now give you deprecation warning. They are deprecated since 2.0
- there's now new api: tc_malloc_skip_new_handler (ported from chromium fork)
- issue 557 : added support for dumping heap profile via signal (by Jean Lee)
- issue 567 : Petr Hosek contributed SysAllocator support for windows
- Joonsoo Kim contributed several speedups for central freelist code
- TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES environment variable now works
- configure scripts are now using AM_MAINTAINER_MODE. It'll only affect folks who modify source from .tar.gz and want automake to automatically rebuild Makefile-s. See automake documentation for that.
- issue 586 : detect main executable even if PIE is active (based on patch by user themastermind1). Notably, it fixes profiler use with ruby.
- there is now support for switching backtrace capturing method at runtime (via TCMALLOC_STACKTRACE_METHOD and TCMALLOC_STACKTRACE_METHOD_VERBOSE environment variables)
- there is new backtrace capturing method using -finstrument-functions prologues contributed by user xiaoyur347
- few cases of crashes/deadlocks in profiler were addressed. See (famous) issue-66, issue 547 and issue 579 .
- issue 464 (memory corruption in debugalloc's realloc after memallign) is now fixed
- tcmalloc is now able to release memory back to OS on windows ( issue 489 ). The code was ported from chromium fork (by a number of authors).
- Together with issue 489 we ported chromium's "aggressive decommit" mode. In this mode (settable via malloc extension and via environment variable TCMALLOC_AGGRESSIVE_DECOMMIT), free pages are returned back to OS immediately.
- MallocExtension::instance() is now faster (based on patch by Adhemerval Zanella)
- issue 610 (hangs on windows in multibyte locales) is now fixed
The following people helped with ideas or patches (based on git log, some contributions purely in bugtracker might be missing): Andrew C. Morrow, yurivict, Wang YanQing, Thomas Klausner, davide.italiano@10gen.com, Dai MIKURUBE, Joon-Sung Um, Jovan Zelincevic, Jean Lee, Petr Hosek, Ben Avison, drussel, Joonsoo Kim, Hannes Weisbach, xiaoyur347, Riku Voipio, Adhemerval Zanella, Raphael Moreira Zinsly
gperftools-2.1: tagging 2.1
This is gperftools 2.1. See NEWS file for release notes.