VictoriaMetrics/lib/promutils
Aliaksandr Valialkin 4e65636b44
lib/promutils: optimize LabelsCompressor.Decompress by using a specialized labelsMap struct instead of sync.Map
The labelsMap struct employs the fact that label indexes are condensed around 0,
so it stores the referred labels in a slice instead of map and uses slice index as label key.
This allows increasing the LabelsCompressor.Decompress performance by up to 3x.
This also reduces the latency of data flush in stream aggregation.
2024-03-03 23:21:25 +02:00
..
duration.go lib/promutils, app/vmalert-tool/unittest: move promutils.Duration.ParseTime() to app/vmalert-tool/unittest.durationToTime() 2023-10-16 14:19:31 +02:00
duration_test.go lib/promscrape: support prometheus-like duration in scrape configs (#2169) 2022-02-11 16:17:00 +02:00
labels.go all: consistently clear prompbmarshal.Label by assigning an empty struct instead of zeroing Name and Value individually 2024-01-21 05:11:05 +02:00
labels_test.go lib/promutils: properly return error when incorrect Prometheus label names are passed to NewLabelsFromString() 2023-05-12 16:52:29 -07:00
labels_timing_test.go lib/promscrape: optimize service discovery speed 2022-11-29 21:26:00 -08:00
labelscompressor.go lib/promutils: optimize LabelsCompressor.Decompress by using a specialized labelsMap struct instead of sync.Map 2024-03-03 23:21:25 +02:00
labelscompressor_test.go lib/streamaggr: huge pile of changes 2024-03-02 02:42:50 +02:00
labelscompressor_timing_test.go lib/streamaggr: huge pile of changes 2024-03-02 02:42:50 +02:00
time.go lib/promutils: hide the math.Round() logic inside ParseTimeMsec() function 2024-02-23 00:55:32 +02:00
time_test.go lib/promutils: hide the math.Round() logic inside ParseTimeMsec() function 2024-02-23 00:55:32 +02:00