You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/ipn
David Anderson 9cd4e65191 smallzstd: new package that constructs zstd small encoders/decoders.
It's just a config wrapper that passes "use less memory at the
expense of compression" parameters by default, so that we don't
accidentally construct resource-hungry (de)compressors.

Also includes a benchmark that measures the memory cost of the
small variants vs. the stock variants. The savings are significant
on both compressors (~8x less memory) and decompressors (~1.4x less,
not including the savings from the significantly smaller
window on the compression side - with those savings included it's
more like ~140x smaller).

BenchmarkSmallEncoder-8            	   56174	     19354 ns/op	      31 B/op	       0 allocs/op
BenchmarkSmallEncoderWithBuild-8   	    2900	    382940 ns/op	 1746547 B/op	      36 allocs/op
BenchmarkStockEncoder-8            	   48921	     25761 ns/op	     286 B/op	       0 allocs/op
BenchmarkStockEncoderWithBuild-8   	     426	   2630241 ns/op	13843842 B/op	     124 allocs/op
BenchmarkSmallDecoder-8            	  123814	      9344 ns/op	       0 B/op	       0 allocs/op
BenchmarkSmallDecoderWithBuild-8   	   41547	     27455 ns/op	   27694 B/op	      31 allocs/op
BenchmarkStockDecoder-8            	  129832	      9417 ns/op	       1 B/op	       0 allocs/op
BenchmarkStockDecoderWithBuild-8   	   25561	     51751 ns/op	   39607 B/op	      92 allocs/op

Signed-off-by: David Anderson <danderson@tailscale.com>
4 years ago
..
ipnserver smallzstd: new package that constructs zstd small encoders/decoders. 4 years ago
ipnstate ipn/ipnstate: improve HTML output 4 years ago
policy ipn, ipn/policy: filter portlist to a short list of "interesting" ports 4 years ago
backend.go ipn: Resolve some resource leaks in test. 4 years ago
doc.go Move Linux client & common packages into a public repo. 4 years ago
fake_test.go ipn, wgengine/filter: remove exported type aliases 4 years ago
handle.go ipn, wgengine/filter: remove exported type aliases 4 years ago
local.go wgengine/magicsock: add new endpoint type used for discovery-supporting peers 4 years ago
message.go ipn: add AllowVersionSkew bool to Notify & Message 4 years ago
message_test.go Add tstest.PanicOnLog(), and fix various problems detected by this. 4 years ago
prefs.go ipn: add Hostname override to Prefs 4 years ago
prefs_test.go ipn: add Hostname override to Prefs 4 years ago
store.go ipn: have NewFileStore try to create directories as needed 4 years ago
store_test.go Add tstest.PanicOnLog(), and fix various problems detected by this. 4 years ago