Closed filipecosta90 closed 3 years ago
Merging #5 (9d30132) into master (265c005) will decrease coverage by
10.22%
. The diff coverage is81.40%
.
@@ Coverage Diff @@
## master #5 +/- ##
===========================================
- Coverage 95.20% 84.98% -10.23%
===========================================
Files 1 1
Lines 167 253 +86
===========================================
+ Hits 159 215 +56
- Misses 8 38 +30
Impacted Files | Coverage Δ | |
---|---|---|
src/tdigest.c | 84.98% <81.40%> (-10.23%) |
:arrow_down: |
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact)
,ø = not affected
,? = missing data
Powered by Codecov. Last update 265c005...9d30132. Read the comment docs.
td_add
. td_quantile
on master td_cdf
on master merge
on master@ashtul merging given I need the most performant version for a multi sketch benchmark
This PR moves from having data nodes data organized in an Array of Structures (AoS) to an structure of Arrays (SoA), meaning that in practical terms we use an array of primary data-types instead of an array of centroids ( struct ). The impact of this change on both reads/writes can be described by the following table and chart. We see up to 180% less CPU time spent on the same operations.
Raw benchmark outputs:
Before performance improvements:
After performance improvements:
Measuring Giga-FLOPS per cycle per core per second
We can use the fp_arith_inst_retired.scalar_double event (Number of SSE/AVX computational scalar double precision floating-point) to get the Giga-FLOPS per cycle per core per second for both branches...
Giga-FLOPS per cycle per core per second master branch
Giga-FLOPS per cycle per core per second perf.qsort.central branch