gecko-dev/python
Nicholas Nethercote 0f418f3874 Bug 1253512 (part 1) - Overhaul DMD's "sampling". r=erahm.
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
2016-02-24 14:42:22 +11:00
..
bitstring
blessings
compare-locales Backed out changeset a87a27864bb8 (bug 1223385) 2016-01-15 13:51:54 +01:00
configobj
eme
futures
jsmin
lldbutils Bug 1235261 - Part 4: Remove AutoFallibleTArray. r=froydnj 2016-02-02 17:36:30 +02:00
mach Bug 991343 - Suppress time output when running inside emacs, r=gps 2016-03-11 16:51:24 -08:00
mock-1.0.0
mozboot Bug 1257783 - mach-bootstrap: ask git user to clone hg.mozilla.org with git-cinnabar. r=gps 2016-03-22 11:05:50 +08:00
mozbuild Bug 1253512 (part 1) - Overhaul DMD's "sampling". r=erahm. 2016-02-24 14:42:22 +11:00
mozversioncontrol/mozversioncontrol
psutil
pyasn1
pyasn1-modules
PyECC
pystache
pyyaml
redo
requests Bug 1247994 - Upgrade vendored requests package to 2.9.1; r=mshal 2016-02-12 10:03:53 -08:00
rsa
slugid
virtualenv Bug 1259551 - Upgrade vendored virtualenv to 15.0.1; r=ted 2016-03-24 12:21:55 -07:00
which
mach_commands.py bug 1255479 - make mach python-tests use TestResolver for discovery, make mach test work for python tests. r=nalexander 2016-03-10 12:30:10 -05:00
moz.build bug 1257607 - Add Version type to moz.configure. r=glandium 2016-03-17 11:52:18 -04:00
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/