Closed DrChainsaw closed 3 years ago
Not sure if the implementation for Symbol is really what one wants, but it does yeild the exact same result as Base.summarysize.
Benchmarks:
Before:
julia> @benchmark MemPool.approx_size("aaaa") BenchmarkTools.Trial: memory estimate: 608 bytes allocs estimate: 7 -------------- minimum time: 350.000 ns (0.00% GC) median time: 375.701 ns (0.00% GC) mean time: 511.096 ns (7.43% GC) maximum time: 15.956 μs (96.76% GC) -------------- samples: 10000 evals/sample: 214
After:
julia> @benchmark MemPool.approx_size("aaaa") BenchmarkTools.Trial: memory estimate: 0 bytes allocs estimate: 0 -------------- minimum time: 1.200 ns (0.00% GC) median time: 1.300 ns (0.00% GC) mean time: 1.559 ns (0.00% GC) maximum time: 57.100 ns (0.00% GC) -------------- samples: 10000 evals/sample: 1000
julia> @benchmark MemPool.approx_size(:aaaa) BenchmarkTools.Trial: memory estimate: 576 bytes allocs estimate: 5 -------------- minimum time: 211.193 ns (0.00% GC) median time: 243.303 ns (0.00% GC) mean time: 315.998 ns (9.53% GC) maximum time: 7.154 μs (89.33% GC) -------------- samples: 10000 evals/sample: 545
julia> @benchmark MemPool.approx_size(:aaaa) BenchmarkTools.Trial: memory estimate: 0 bytes allocs estimate: 0 -------------- minimum time: 0.001 ns (0.00% GC) median time: 0.001 ns (0.00% GC) mean time: 0.027 ns (0.00% GC) maximum time: 0.100 ns (0.00% GC) -------------- samples: 10000 evals/sample: 1000
Thanks!
Not sure if the implementation for Symbol is really what one wants, but it does yeild the exact same result as Base.summarysize.
Benchmarks:
String
Before:
After:
Symbol
Before:
After: