summaryrefslogtreecommitdiff
path: root/bin
Commit message (Collapse)AuthorAgeFilesLines
* fix some typoscuishuang2022-04-251-2/+2
| | | | Signed-off-by: cuishuang <imcusg@gmail.com>
* Added --debug-syms-by-id optionDeanna Gelbart2021-05-171-5/+51
|
* Backport jeprof --collapse for flamegraph generationIgor Wiedler2020-12-041-0/+52
|
* Fix typo derived from tcmalloc's pprof2019-04-231-1/+1
| | | | | The same pr is submitted into gperftools: https://github.com/gperftools/gperftools/pull/1105
* remove compare and branch in fast path for c++ operator delete[]mgrice2019-04-081-0/+1
| | | | Summary: sdallocx is checking a flag that will never be set (at least in the provided C++ destructor implementation). This branch will probably only rarely be mispredicted however it removes two instructions in sdallocx and one at the callsite (to zero out flags).
* Filter out "void *newImpl" in prof output.Qi Wang2017-08-081-0/+1
|
* Filter out "newImpl" from profiling output.Qi Wang2017-07-281-0/+1
|
* Add jemalloc prefix to allocator functions pruned by jeprof.Jason Evans2017-05-301-13/+13
| | | | This resolves #507.
* issue-586: detect main executable even if PIE is activeAliaksey Kandratsenka2017-04-031-1/+12
| | | | | | | | | | Previous logic of detecting main program addresses is to assume that main executable is at least addressess. With PIE (active by default on Ubuntus) it doesn't work. In order to deal with that, we're attempting to find main executable mapping in /proc/[pid]/maps. And old logic is preserved too just in case.
* jemalloc cpp new/delete bindingsDave Watson2016-12-121-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds cpp bindings for jemalloc, along with necessary autoconf settings. This is mostly to add sized deallocation support, which can't be added from C directly. Sized deallocation is ~10% microbench improvement. * Import ax_cxx_compile_stdcxx.m4 from the autoconf repo, seems like the easiest way to get c++14 detection. * Adds various other changes, like CXXFLAGS, to configure.ac. * Adds new rules to Makefile.in for src/jemalloc-cpp.cpp, and a basic unittest. * Both new and delete are overridden, to ensure jemalloc is used for both. * TODO future enhancement of avoiding extra PLT thunks for new and delete - sdallocx and malloc are publicly exported jemalloc symbols, using an alias would link them directly. Unfortunately, was having trouble getting it to play nice with jemalloc's namespace support. Testing: Tested gcc 4.8, gcc 5, gcc 5.2, clang 4.0. Only gcc >= 5 has sized deallocation support, verified that the rest build correctly. Tested mac osx and Centos. Tested --with-jemalloc-prefix and --without-export. This resolves #202.
* Pass retain and exclude parameters to /pprof/symbol.Jason Evans2016-01-291-0/+23
| | | | | | Pass the retain and exclude parameters to the /pprof/symbol pprof server endpoint so that the server has the opportunity to optimize which symbols it looks up and/or returns mappings for.
* Detect failed profile fetchesDave Watson2016-01-121-1/+1
| | | | | | | | | | | | | | | | | | | | Summary: Currently an HTTP error response will still try to be parsed, resulting in these messages: substr outside of string at /home/davejwatson/local/jemalloc-github/bin/jeprof line 3635, <PROFILE> line 1. Use of uninitialized value in string eq at /home/davejwatson/local/jemalloc-github/bin/jeprof line 3635, <PROFILE> line 1. substr outside of string at /home/davejwatson/local/jemalloc-github/bin/jeprof line 3637, <PROFILE> line 1. Use of uninitialized value in string eq at /home/davejwatson/local/jemalloc-github/bin/jeprof line 3637, <PROFILE> line 1. /home/davejwatson/jeprof/server.1452638936.localhost.pprof.heap: header size >= 2**16 After this fix, curl will return an error status code that will be correctly checked at line 3536, resulting in this error message: Failed to get profile: curl -s --fail 'http://localhost:4010/pprof/heap' > /home/davejwatson/jeprof/.tmp.server.1452639085.localhost.pprof.heap: No such file or directory Test Plan: Tested with MALLOC_CONF="prof:false". Also tested fetching symbols. Didn't test redirects, but this should only affect http error codes >= 400
* Don't discard curl options if timeout is not defined.Dave Watson2016-01-121-1/+1
| | | | Merge of https://github.com/gperftools/gperftools/commit/5078abdb331e63d7a216994f186eb736861f8df7
* Implement --retain and --exclude in jeprof.Jason Evans2015-12-141-2/+48
| | | | | These options make it possible to filter symbolized backtrace frames using regular expressions.
* Integrate raw heap profile support into jeprof.Jason Evans2015-11-091-11/+43
|
* Rename pprof to jeprof.Jason Evans2015-05-011-56/+58
| | | | | | | | | | This rename avoids installation collisions with the upstream gperftools. Additionally, jemalloc's per thread heap profile functionality introduced an incompatible file format, so it's now worthwhile to clearly distinguish jemalloc's version of this script from the upstream version. This resolves #229.
* Implement the jemalloc-config script.Jason Evans2015-01-221-0/+79
| | | | This resolves #133.
* [pprof] Produce global profile unless thread-local profile requestedBert Maher2014-12-141-2/+3
| | | | | | | | | Currently pprof will print output for all threads if a single thread is not specified, but this doesn't play well with many output formats (e.g., any of the dot-based formats). Instead, default to printing just the overall profile when no specific thread is requested. This resolves #157.
* Add sdallocx() to list of functions to prune in pprof.Jason Evans2014-09-101-0/+1
|
* Fix threaded heap profile bug in pprof.Jason Evans2014-09-091-1/+1
| | | | | Fix ReadThreadedHeapProfile to pass the correct parameters to AdjustSamples.
* Support threaded heap profiles in pprofBert Maher2014-09-091-126/+251
| | | | | | | | | - Add a --thread N option to select profile for thread N (otherwise, all threads will be printed) - The $profile map now has a {threads} element that is a map from thread id to a profile that has the same format as the {profile} element - Refactor ReadHeapProfile into smaller components and use them to implement ReadThreadedHeapProfile
* Simplify backtracing.Jason Evans2014-04-221-0/+9
| | | | | | | | | | | Simplify backtracing to not ignore any frames, and compensate for this in pprof in order to increase flexibility with respect to function-based refactoring even in the presence of non-deterministic inlining. Modify pprof to blacklist all jemalloc allocation entry points including non-standard ones like mallocx(), and ignore all allocator-internal frames. Prior to this change, pprof excluded the specifically blacklisted functions from backtraces, but it left allocator-internal frames intact.
* Consistently use debug lib(s) if presentHarald Weppner2014-03-181-1/+7
| | | | | | Fixes a situation where nm uses the debug lib but addr2line does not, which completely messes up the symbol lookup.
* Enable profiling / leak detection in FreeBSDHarald Weppner2014-03-171-2/+20
| | | | | * Assumes procfs is mounted at /proc, cf. <http://www.freebsd.org/doc/en/articles/linux-users/procfs.html>
* Few configure.ac adjustmentsMike Hommey2012-04-301-1/+1
| | | | | | - Use the extensions autoconf finds for object and executable files. - Remove the sorev variable, and replace SOREV definition with sorev's. - Default to je_ prefix on win32.
* Fix jemalloc.sh code generation.Jason Evans2012-04-231-1/+1
| | | | | Fix jemalloc.sh code generation by adding @sorev@ and using it instead of @SOREV@ (which contains Makefile-specific variables).
* Make versioned shared library suffix configurableMike Hommey2012-04-181-1/+1
| | | | | | | | This allows for different patterns for file names: - lib.so.version for e.g. Linux - lib.version.dylib for OSX (which is much more common than lib.dylib.version) - lib.dll for Windows (no version at all).
* Update pprof (from gperftools 2.0).Jason Evans2012-04-171-193/+648
|
* Refactor SO and REV make variables.Jason Evans2011-11-011-1/+1
| | | | | | Refactor the SO and REV such that they are set via autoconf variables, @so@ and @rev@. These variables are both needed by the jemalloc.sh script, so this unifies their definitions.
* add autogenerated jemalloc.sh wrapper scriptAntony Dovgal2011-11-011-0/+9
|
* Move repo contents in jemalloc/ to top level.Jason Evans2011-03-311-0/+4893