I thought the perf numbers were sent. It shows up in my email client. But I couldn't find it in the list. Here is a resend. Note: the numbers are not final, with some improvement I believe "hg id" performance difference could be controlled to about 20ms from obscache (when reading 6k markers). And I think eventually we want a lazy "obsolete" set so we only read minimal numbers of markers.
--- Begin forwarded message from Jun Wu --- From: Jun Wu <qu...@fb.com> To: Jun Wu <qu...@fb.com> Cc: "mercurial-devel <mercurial-devel@mercurial-scm.org>, Martin von Zweigbergk" <martinv...@google.com> Date: Sun, 21 May 2017 18:49:24 -0700 Subject: Re: [PATCH 6 of 6 RFC] radixlink: use C radixlink get implementation if available Perf numbers: | original | radixlink pure | radixlink C | obscache --------------------------------------------------------------------- hg log -r . | 1.05 | 0.42 | 0.31 | 1.05 hg id | 0.71 | 0.34 | 0.24 | 0.19 (time in seconds, hg-committed, best of 20 runs) As noted in the first patch, this effort is also useful to solve other hard perf issues (linkrev included). So it's not only competing to obscache. As for RFC, some error handling needs to be polished, and some obsstore writing code path may need to be examined. I didn't run tests yet. Excerpts from Jun Wu's message of 2017-05-21 18:31:13 -0700: > # HG changeset patch > # User Jun Wu <qu...@fb.com> > # Date 1495409961 25200 > # Sun May 21 16:39:21 2017 -0700 > # Node ID b69ca9116b2cae29fd182c7bb545e59f16455d3f > # Parent 6916f2eede1507237cffdb62db1baff8ded04ea5 > # Available At https://bitbucket.org/quark-zju/hg-draft > # hg pull https://bitbucket.org/quark-zju/hg-draft -r > b69ca9116b2c > radixlink: use C radixlink get implementation if available > [...] --- End forwarded message --- _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel