HomePhabricator

Slightly improve base85 performance for 64-bit systems

Description

Slightly improve base85 performance for 64-bit systems

Summary:
Ref T13130. I wasn't able make this much better, but it looks like this is about ~20% faster on my system.

This kind of thing is somewhat difficult to micro-optimize because XHProf tends to over-estimate the cost of function calls. In XHProf, this looks much much faster than the old version (~100% faster) but the actual cost of bin/conduit call --method differential.getrawdiff hasn't improved that much. Still, it seems consistently faster across multiple runs.

Test Plan:

  • Pulled binary diffs over Conduit with bin/conduit call --method differential.getrawdiff.
  • Verified that they are byte-for-byte identical with the pre-change diffs, and look like they're ~20% faster.
  • Profiled the differences and saw a far more dramatic improvement, but I believe XHProf is exaggerating the effect of this change because it tends to overestimate function call cost.
  • Ran unit tests (from D19407), got byte-for-byte identical output under both 32bit and 64bit mode.

Reviewers: amckinley

Reviewed By: amckinley

Maniphest Tasks: T13130

Differential Revision: https://secure.phabricator.com/D19408