Alexey Serbin has submitted this change and it was merged. ( http://gerrit.cloudera.org:8080/18187 )
Change subject: [util] optimized version of BitUtil::Ceil() ...................................................................... [util] optimized version of BitUtil::Ceil() This patch introduces an optimized version of BitUtil::Ceil() for the case when the divisor is a power of two. As it turns out, all usages of the BitUtil::Ceil() in Kudu are for divisor of 8, so I updated all the call sites correspondingly. This patch also contains the updated RLE benchmark. The comparison results are the following for a RELEASE configuration built with c++ (GCC) 8.3.1 20190311 (Red Hat 8.3.1-3)): Non-optimized implementation: Time spent BooleanBitStream: real 0.487s user 0.486s sys 0.001s Wrote 1048576 bytes Time spent BooleanRLE: real 2.302s user 2.304s sys 0.001s Wrote 46080 bytes Optimized implementation: Time spent BooleanBitStream: real 0.017s user 0.016s sys 0.000s Wrote 1048576 bytes Time spent BooleanRLE: real 2.055s user 2.056s sys 0.001s Wrote 46080 bytes As for benmarking direct calls of these functions: Time spent BitUtil::Ceil(..., 8): real 0.720s user 0.721s sys 0.000s Time spent BitUtil::Ceil<3>(...): real 0.402s user 0.402s sys 0.000s Change-Id: Ia383856aa9a189681f6ee2a0d317476fe3c847bd Reviewed-on: http://gerrit.cloudera.org:8080/18187 Tested-by: Kudu Jenkins Reviewed-by: Attila Bukor <[email protected]> --- M src/kudu/benchmarks/rle.cc M src/kudu/util/bit-stream-utils.h M src/kudu/util/bit-stream-utils.inline.h M src/kudu/util/bit-util.h M src/kudu/util/rle-encoding.h M src/kudu/util/rle-test.cc 6 files changed, 55 insertions(+), 12 deletions(-) Approvals: Kudu Jenkins: Verified Attila Bukor: Looks good to me, approved -- To view, visit http://gerrit.cloudera.org:8080/18187 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ia383856aa9a189681f6ee2a0d317476fe3c847bd Gerrit-Change-Number: 18187 Gerrit-PatchSet: 4 Gerrit-Owner: Alexey Serbin <[email protected]> Gerrit-Reviewer: Alexey Serbin <[email protected]> Gerrit-Reviewer: Andrew Wong <[email protected]> Gerrit-Reviewer: Attila Bukor <[email protected]> Gerrit-Reviewer: Kudu Jenkins (120)
