Commit 62a74d0
authored
Speed up interval rounding (#63245)
This speeds up date_histogram by precomputing the rounding points for
date intervals like `10d`. The speedup for the rounding itself is
between 18% (UTC many buckets) and 65% (US Eastern Time few buckets).
43% seems like it'd be pretty common:
```
Benchmark (count) (interval) (range) (zone) Mode Cnt Score Error Units
before 10000000 10d 2000-10-28 to 2000-10-31 UTC avgt 10 1308223.700 ± 177466.657 ns/op
before 10000000 10d 2000-10-28 to 2000-10-31 America/New_York avgt 10 189236837.930 ± 7958933.566 ns/op
after 10000000 10d 2000-10-28 to 2000-10-31 UTC avgt 10 66413746.325 ± 1578834.032 ns/op
after 10000000 10d 2000-10-28 to 2000-10-31 America/New_York avgt 10 65656941.375 ± 291608.870 ns/op
before 10000000 2h 2000-10-28 to 2000-10-31 UTC avgt 10 130854975.013 ± 369133.702 ns/op
before 10000000 2h 2000-10-28 to 2000-10-31 America/New_York avgt 10 165831615.257 ± 139074.982 ns/op
after 10000000 2h 2000-10-28 to 2000-10-31 UTC avgt 10 107832636.671 ± 3502704.198 ns/op
after 10000000 2h 2000-10-28 to 2000-10-31 America/New_York avgt 10 107608802.940 ± 979286.160 ns/op
```
Speedup for the date_histogram is likely to vary based on how much IO
dominates the collection.1 parent 490501d commit 62a74d0
1 file changed
+11
-2
lines changedLines changed: 11 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
904 | 904 | | |
905 | 905 | | |
906 | 906 | | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
| 911 | + | |
| 912 | + | |
| 913 | + | |
| 914 | + | |
| 915 | + | |
907 | 916 | | |
908 | 917 | | |
909 | 918 | | |
| |||
928 | 937 | | |
929 | 938 | | |
930 | 939 | | |
931 | | - | |
| 940 | + | |
932 | 941 | | |
933 | 942 | | |
934 | 943 | | |
| |||
972 | 981 | | |
973 | 982 | | |
974 | 983 | | |
975 | | - | |
| 984 | + | |
976 | 985 | | |
977 | 986 | | |
978 | 987 | | |
| |||
0 commit comments