mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 16:57:49 +03:00
d8e775f423
Summary: Some functions might be called very frequently. For example, `phases.phasecache.loadphaserevs` might be called 100k+ times. That makes the tracing data harder to process. Limit the count of spans to 1k by default so the data is cheaper to process, and some highly repetitive cases can now be reasoned about. Note the limit is only put on static Span Ids. If a span uses dynamic metadata or ask for different Span Ids each time, they will not be limited. In debugshell, td = %trace repo.revs('smartlog()') len(td.serialize()) dropped from 6MB to 0.87MB. It's also possible to reason about: td = %trace len(repo.revs('ancestors(.)')) in debugshell (taking 30s, 98KB serialized, vs 21s without tracing), while previously the result would be too large to show (`%trace` just hangs). Reviewed By: DurhamG Differential Revision: D23307793 fbshipit-source-id: 3c1e9885ce7a275c2abd8935a4e4539a4f14ce83 |
||
---|---|---|
.. | ||
src | ||
Cargo.toml |