This is an archive of the discontinued Mercurial Phabricator instance.

util: make nogc effective for CPython
ClosedPublic

Authored by quark on Aug 15 2017, 1:33 AM.

Details

Summary

279cd80059d4 made util.nogc a no-op. It was to optimize PyPy. But it slows
down CPython if many objects (like 300k+) are created.

For example, running hg log -r . without extensions in hg-committed with
14k+ obsmarkers have the following times:

before        | after
hg    | chg   | hg    | chg
-----------------------------
1.262 | 0.860 | 1.077 | 0.619 (seconds, best of 20 runs)

Therefore let's re-enable nogc for CPython.

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

quark created this revision.Aug 15 2017, 1:33 AM
This revision was automatically updated to reflect the committed changes.