mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-29 15:52:07 +00:00
0f418f3874
DMD currently uses a very hacky form of "sampling" by default to avoid recording stack traces for all blocks. This makes DMD run faster than when it records all stack traces. This patch changes the sampling method used; in fact, it avoids "sampling" at all. The existence of all heap blocks is now recorded exactly, but by default we only record an allocation stack for each heap block if a Bernoulli trial succeeds. This choice works well because getting the stack trace is ~100x slower than recording the block's existence. Overall, this approach is simpler and it also gives better output -- the choice of which blocks to record allocation stacks for is mathematically sound, no stack trace gets blamed for allocations it didn't do, and block counts and sizes are now always exact. Other specific things changed. - All notion of sampling is removed from the various data structures. - The --sample-below option is removed in favour of --stacks={partial,full}. - The format of the JSON output file has changed. - The names of various test files have changed to reflect concept changes. --HG-- rename : memory/replace/dmd/test/full-empty-cumulative-expected.txt => memory/replace/dmd/test/complete-empty-cumulative-expected.txt rename : memory/replace/dmd/test/full-empty-dark-matter-expected.txt => memory/replace/dmd/test/complete-empty-dark-matter-expected.txt rename : memory/replace/dmd/test/full-empty-live-expected.txt => memory/replace/dmd/test/complete-empty-live-expected.txt rename : memory/replace/dmd/test/full-unsampled1-dark-matter-expected.txt => memory/replace/dmd/test/complete-full1-dark-matter-expected.txt rename : memory/replace/dmd/test/full-unsampled1-live-expected.txt => memory/replace/dmd/test/complete-full1-live-expected.txt rename : memory/replace/dmd/test/full-unsampled2-cumulative-expected.txt => memory/replace/dmd/test/complete-full2-cumulative-expected.txt rename : memory/replace/dmd/test/full-unsampled2-dark-matter-expected.txt => memory/replace/dmd/test/complete-full2-dark-matter-expected.txt rename : memory/replace/dmd/test/full-sampled-live-expected.txt => memory/replace/dmd/test/complete-partial-live-expected.txt extra : rebase_source : 47d287405dc5e9075f08addaba49e879c2c6e23f |
||
---|---|---|
.. | ||
bitstring | ||
blessings | ||
compare-locales | ||
configobj | ||
eme | ||
futures | ||
jsmin | ||
lldbutils | ||
mach | ||
mock-1.0.0 | ||
mozboot | ||
mozbuild | ||
mozversioncontrol/mozversioncontrol | ||
psutil | ||
pyasn1 | ||
pyasn1-modules | ||
PyECC | ||
pystache | ||
pyyaml | ||
redo | ||
requests | ||
rsa | ||
slugid | ||
virtualenv | ||
which | ||
mach_commands.py | ||
moz.build | ||
README |
This directory contains common Python code. The basic rule is that if Python code is cross-module (that's "module" in the Mozilla meaning - as in "module ownership") and is MPL-compatible, it should go here. What should not go here: * Python that is not MPL-compatible (see other-licenses/) * Python that has good reason to remain close to its "owning" (Mozilla) module (e.g. it is only being consumed from there). Historical information can be found at https://bugzilla.mozilla.org/show_bug.cgi?id=775243 ## pyyaml | pystache Used in taskcluster related mach commands to update download from github and remove .git and tests. Then run tests in taskcluster/tests/