mirror of
https://github.com/dart-lang/sdk
synced 2024-11-02 12:24:24 +00:00
44a04f18f9
Statically linking in the tcmalloc code is enough to override the built-in malloc. I have this set up to exclude the code for collecting heap profiles in a Product build. There's still about a 230KB increase in binary size, though. I think this isn't a big problem since right now this is enabled only for server Linux. product binary size: before x64: 9569600 after x64: 9807840 increase: 238240 (2.5%) before ia32: 9122836 after ia32: 9360944 increase: 238108 (2.6%) before mips: 9418680 after mips: 9640940 increase: 222260 (2.4%) InitialRSS: product: before x64: 6307840 after x64: 7430144 increase: 1122304 (17.8%) release (--no-profiler) before x64: 7843840 after x64: 9207808 increase: 1363968 (17.4%) R=asiva@google.com, whesse@google.com Review URL: https://codereview.chromium.org/2316813002 . |
||
---|---|---|
.. | ||
include | ||
.gitignore | ||
configure_command | ||
README.dart | ||
tcmalloc.gypi | ||
tcmalloc_sources.gypi |
Dart uses tcmalloc in the standalone VM on Linux. To roll tcmalloc forward: . Clone the gperftools git repo at the revision you want in a directory off to the side. . Run a configure command similar to the one in the configure_command file in this directory. It is up to you to determine if different flags are required for the newer gperftools. . From that repo, copy src/config.h and src/gperftools/tcmalloc.h, and any other generated header files to the include/ directory in this directory. . Make sure that include/config.h defines HAVE_UCONTEXT_H on Linux, . Update tcmalloc_sources.gypi, and tcmalloc.gyp if necessary. This may require inspecting gperftools/Makefile.am to see any additional source files and preprocessor defines (-D flags). . Update the DEPS file with the new git hash. . Build and run tests for Debug, Release, and Product builds for ia32, x64, mips and arm for Linux and any other OSs that are supported.