VictoriaMetrics/lib
Aliaksandr Valialkin f4989edd96
lib/bytesutil: split Resize() into ResizeNoCopy() and ResizeWithCopy() functions
Previously bytesutil.Resize() was copying the original byte slice contents to a newly allocated slice.
This wasted CPU cycles and memory bandwidth in some places, where the original slice contents wasn't needed
after slize resizing. Switch such places to bytesutil.ResizeNoCopy().

Rename the original bytesutil.Resize() function to bytesutil.ResizeWithCopy() for the sake of improved readability.

Additionally, allocate new slice with `make()` instead of `append()`. This guarantees that the capacity of the allocated slice
exactly matches the requested size. The `append()` could return a slice with bigger capacity as an optimization for further `append()` calls.
This could result in excess memory usage when the returned byte slice was cached (for instance, in lib/blockcache).

Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/2007
2022-01-25 15:24:44 +02:00
..
auth app/vmagent: follow-up after fe445f753b 2021-08-05 09:52:32 +03:00
backup adds restore.lock (#1988) 2021-12-22 13:10:15 +02:00
blockcache lib/blockcache: optimize blockcache a bit 2022-01-23 13:13:45 +02:00
bloomfilter lib/promscrape: add the ability to limit the number of unique series per each scrape target 2021-09-01 16:03:59 +03:00
buildinfo all: open-sourcing single-node version 2019-05-23 00:18:06 +03:00
bytesutil lib/bytesutil: split Resize() into ResizeNoCopy() and ResizeWithCopy() functions 2022-01-25 15:24:44 +02:00
cgroup lib/cgroup: set GOGC to 50 by default if it isn't set 2021-07-05 15:16:11 +03:00
decimal all: fix build issues and tests for Apple M1 2021-10-27 15:06:34 +03:00
encoding all: add go:build lines for Go1.17 2021-07-26 15:48:21 +03:00
envflag lib/envflag: use flag.Set for setting the flags from env vars 2021-10-20 00:41:08 +03:00
envtemplate all: support %{ENV_VAR} placeholders in yaml configs in all the vm* components 2020-08-13 17:15:25 +03:00
fastnum Makefile: add build and test rules with enabled race detector. These rules have -race suffix 2020-03-05 12:03:38 +02:00
fasttime lib: extract common code for returning fast unix timestamp into lib/fasttime 2020-05-14 23:02:07 +03:00
filestream lib/fs: add vm_filestream_read_duration_seconds_total and vm_filestream_write_duration_seconds_total metrics 2021-12-02 10:30:42 +02:00
flagutil lib/flagutil: do not expose sensitive info (passwords, keys and urls) at /flags page 2021-10-20 00:51:26 +03:00
fs app: allow specifying http and https urls in the following command-line flags 2021-12-03 00:10:02 +02:00
httpserver vmui: multiple queries (#1916) 2021-12-08 16:40:15 +02:00
influxutils all: consistently return application/json content-type without charset=utf-8 2021-11-09 18:04:44 +02:00
ingestserver lib/bytesutil: split Resize() into ResizeNoCopy() and ResizeWithCopy() functions 2022-01-25 15:24:44 +02:00
leveledbytebufferpool lib/promscrape: an attempt to reduce memory usage when vmagent scrapes targets with varying number of metrics 2021-03-15 11:45:39 +02:00
logger lib/logger: removed broken test after 746ee191e8 2022-01-24 12:14:32 +02:00
memory all: add go:build lines for Go1.17 2021-07-26 15:48:21 +03:00
mergeset lib/bytesutil: split Resize() into ResizeNoCopy() and ResizeWithCopy() functions 2022-01-25 15:24:44 +02:00
metricsql lib/metricsql: move it to a separate repository - github.com/VictoriaMetrics/metrics 2020-04-28 15:28:22 +03:00
netutil lib/netutil: enable IPv6 UDP listening if -enableTCP6 command-line flag is passed to VictoriaMetrics 2021-03-17 00:16:17 +02:00
pacelimiter lib/pacelimiter: increase scalability for multi-CPU system 2020-08-06 18:32:59 +03:00
persistentqueue lib/bytesutil: split Resize() into ResizeNoCopy() and ResizeWithCopy() functions 2022-01-25 15:24:44 +02:00
procutil all: add go:build lines for Go1.17 2021-07-26 15:48:21 +03:00
promauth app: allow specifying http and https urls in the following command-line flags 2021-12-03 00:10:02 +02:00
prompb app/vminsert: moved -maxInsertRequestSize command-line flag out of lib/prompb in order to prevent its inclusion in vmselect and vmstorage apps 2020-01-28 23:02:08 +02:00
prompbmarshal all: use %w instead of %s for wrapping errors in fmt.Errorf 2020-06-30 23:05:11 +03:00
promrelabel all: typo fix: unexected -> unexpected 2021-12-20 17:39:52 +02:00
promscrape lib/promscrape: expose promscrape_stale_samples_created_total metric for monitoring the number of created stale samples 2022-01-14 01:00:46 +02:00
protoparser lib/bytesutil: split Resize() into ResizeNoCopy() and ResizeWithCopy() functions 2022-01-25 15:24:44 +02:00
proxy lib/promscrape: properly show proxy_url option value at /config page 2021-10-26 21:23:54 +03:00
storage lib/bytesutil: split Resize() into ResizeNoCopy() and ResizeWithCopy() functions 2022-01-25 15:24:44 +02:00
storagepacelimiter lib/storage: remove prioritizing of merging small parts over merging big parts, since it doesn't work as expected 2020-07-30 19:57:27 +03:00
syncwg all: open-sourcing single-node version 2019-05-23 00:18:06 +03:00
tenantmetrics app/vmagent: follow-up after fe445f753b 2021-08-05 09:52:32 +03:00
timerpool lib/timerpool: use timer pool in concurrency limiters 2019-05-28 17:20:10 +03:00
uint64set Revert "lib/uint64set: allow reusing bucket16 structs inside uint64set.Set via uint64set.Release method" 2021-07-06 18:21:35 +03:00
workingsetcache lib/workingsetcache: fix unaligned 64-bit atomic operation panic on 32-bit architectures 2021-12-03 01:21:51 +02:00
writeconcurrencylimiter all: properly handle CPU limits set on the host system/container 2020-12-08 21:07:29 +02:00