diff options
author | yoav-steinberg <yoav@monfort.co.il> | 2022-04-20 09:38:20 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-20 09:38:20 +0300 |
commit | 5075e74366c99033886bce13fcd504a2c57fa180 (patch) | |
tree | d968acc3d9843cc38f6c3963a44f515ee2c8b174 /deps/hdr_histogram/hdr_tests.h | |
parent | aba2865c8680326e148ba6eb4cb6f6e7ab5119a3 (diff) | |
download | redis-5075e74366c99033886bce13fcd504a2c57fa180.tar.gz |
Optimized `hdr_value_at_percentile` (#10606)
`hdr_value_at_percentile()` is part of the Hdr_Histogram library
used when generating `latencystats` report.
There's a pending optimization for this function which greatly
affects the performance of `info latencystats`.
https://github.com/HdrHistogram/HdrHistogram_c/pull/107
This PR:
1. Upgrades the sources in _deps/hdr_histogram_ to the latest Hdr_Histogram
version 0.11.5
2. Applies the referenced optimization.
3. Adds minor documentation about the hdr_histogram dependency which was
missing under _deps/README.md_.
benchmark on my machine:
running: `redis-benchmark -n 100000 info latencystats` on a clean build with no data.
| benchmark | RPS |
| ---- | ---- |
| before upgrade to v0.11.05 | 7,681 |
| before optimization | 12,474 |
| after optimization | 52,606 |
Co-authored-by: filipe oliveira <filipecosta.90@gmail.com>
Diffstat (limited to 'deps/hdr_histogram/hdr_tests.h')
-rw-r--r-- | deps/hdr_histogram/hdr_tests.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/deps/hdr_histogram/hdr_tests.h b/deps/hdr_histogram/hdr_tests.h new file mode 100644 index 000000000..c016d3a6d --- /dev/null +++ b/deps/hdr_histogram/hdr_tests.h @@ -0,0 +1,22 @@ +#ifndef HDR_TESTS_H +#define HDR_TESTS_H + +/* These are functions used in tests and are not intended for normal usage. */ + +#include "hdr_histogram.h" + +#ifdef __cplusplus +extern "C" { +#endif + +int32_t counts_index_for(const struct hdr_histogram* h, int64_t value); +int hdr_encode_compressed(struct hdr_histogram* h, uint8_t** compressed_histogram, size_t* compressed_len); +int hdr_decode_compressed(uint8_t* buffer, size_t length, struct hdr_histogram** histogram); +void hdr_base64_decode_block(const char* input, uint8_t* output); +void hdr_base64_encode_block(const uint8_t* input, char* output); + +#ifdef __cplusplus +} +#endif + +#endif |