Page MenuHomePhabricator

Update univalue to 1.1.1
ClosedPublic

Authored by jasonbcox on May 13 2020, 22:47.

Details

Summary

Update univalue to 1.1.1
https://github.com/jgarzik/univalue/compare/v1.0.5...v1.1.1

This improves getblocktemplate performance by ~28% on my machine.
Exerpt from https://github.com/jgarzik/univalue/pull/66 which is
the primary change associated with the perf improvement:

When the hand-written destructor is removed, the compiler will
automatically create a proper one, with correct noexcept. This
allows std::vector<UniValue> to be resized without having to copy
all elements first, which makes JSON generation of a bitcoin block
(as in the benchmark "BlockToJsonVerbose") 25% faster on my machine.

Author: @martinus

This update also includes some nice cleanup and a new reserve()
function that may allow us to squeeze out some more performance
in a few places.

Test Plan
ninja check check-functional check-univalue

Event Timeline

This revision is now accepted and ready to land.May 13 2020, 23:00
This revision was automatically updated to reflect the committed changes.