From 7f87d66fe45f1d209b404f397b2258d313cae093 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Fri, 8 Oct 2021 13:10:28 -0400 Subject: [PATCH] benchproc: add an end-to-end example Change-Id: I4c401c43b1255ded311bede92ce70fc8f7f5feaf Reviewed-on: https://go-review.googlesource.com/c/perf/+/355169 Trust: Austin Clements Run-TryBot: Austin Clements Reviewed-by: David Chase Reviewed-by: Russ Cox TryBot-Result: Gopher Robot Reviewed-by: Michael Knyszek --- benchproc/example_test.go | 141 +++++++++ benchproc/testdata/suffixarray.bench | 426 +++++++++++++++++++++++++++ 2 files changed, 567 insertions(+) create mode 100644 benchproc/example_test.go create mode 100644 benchproc/testdata/suffixarray.bench diff --git a/benchproc/example_test.go b/benchproc/example_test.go new file mode 100644 index 0000000..04a8adb --- /dev/null +++ b/benchproc/example_test.go @@ -0,0 +1,141 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package benchproc + +import ( + "fmt" + "log" + "os" + + "golang.org/x/perf/benchfmt" + "golang.org/x/perf/benchunit" +) + +// Example shows a complete benchmark processing pipeline that uses +// filtering, projection, accumulation, and sorting. +func Example() { + // Open the example benchmark data. + f, err := os.Open("testdata/suffixarray.bench") + if err != nil { + log.Fatal(err) + } + defer f.Close() + + // Create a filter that extracts just "BenchmarkNew" on the value + // "go" of the name key "text". Typically, the filter expression + // would come from a command-line flag. + filter, err := NewFilter(".name:New /text:go") + if err != nil { + log.Fatal(err) + } + // Create a projection. This projection extracts "/bits=" and + // "/size=" from the benchmark name. It sorts bits in the + // default, first-observation order and size numerically. + // Typically, the projection expression would come from a + // command-line flag. + var pp ProjectionParser + projection, err := pp.Parse("/bits,/size@num", filter) + if err != nil { + log.Fatal(err) + } + // Create a projection that captures all configuration not + // captured by the above projection. We'll use this to check + // if there's unexpected variation in other configuration + // fields and report it. + residue := pp.Residue() + + // We'll accumulate benchmark results by their projection. + // Projections create Keys, which are == if the projected + // values are ==, so they can be used as map keys. + bySize := make(map[Key][]float64) + var keys []Key + var residues []Key + + // Read the benchmark results. + r := benchfmt.NewReader(f, "example") + for r.Scan() { + var res *benchfmt.Result + switch rec := r.Result(); rec := rec.(type) { + case *benchfmt.Result: + res = rec + case *benchfmt.SyntaxError: + // Report a non-fatal parse error. + log.Print(err) + continue + default: + // Unknown record type. Ignore. + continue + } + + // Step 1: If necessary, transform the Result, for example to + // add configuration keys that could be used in filters and + // projections. This example doesn't need any transformation. + + // Step 2: Filter the result. + if match, err := filter.Apply(res); !match { + // Result was fully excluded by the filter. + if err != nil { + // Print the reason we rejected this result. + log.Print(err) + } + continue + } + + // Step 3: Project the result. This produces a Key + // that captures the "size" and "bits" from the result. + key := projection.Project(res) + + // Accumulate the results by configuration. + speed, ok := res.Value("sec/op") + if !ok { + continue + } + if _, ok := bySize[key]; !ok { + keys = append(keys, key) + } + bySize[key] = append(bySize[key], speed) + + // Collect residue configurations. + resConfig := residue.Project(res) + residues = append(residues, resConfig) + } + // Check for I/O errors. + if err := r.Err(); err != nil { + log.Fatal(err) + } + + // Step 4: Sort the collected configurations using the order + // specified by the projection. + SortKeys(keys) + + // Print the results. + fmt.Printf("%-24s %s\n", "config", "sec/op") + for _, config := range keys { + fmt.Printf("%-24s %s\n", config, benchunit.Scale(mean(bySize[config]), benchunit.Decimal)) + } + + // Check if there was variation in any other configuration + // fields that wasn't captured by the projection and warn the + // user that something may be unexpected. + nonsingular := NonSingularFields(residues) + if len(nonsingular) > 0 { + fmt.Printf("warning: results vary in %s\n", nonsingular) + } + + // Output: + // config sec/op + // /bits:32 /size:100K 4.650m + // /bits:32 /size:500K 26.18m + // /bits:32 /size:1M 51.39m + // /bits:32 /size:5M 306.7m + // /bits:32 /size:10M 753.0m + // /bits:32 /size:50M 5.814 + // /bits:64 /size:100K 5.081m + // /bits:64 /size:500K 26.43m + // /bits:64 /size:1M 55.60m + // /bits:64 /size:5M 366.6m + // /bits:64 /size:10M 821.2m + // /bits:64 /size:50M 6.390 +} diff --git a/benchproc/testdata/suffixarray.bench b/benchproc/testdata/suffixarray.bench new file mode 100644 index 0000000..22ab686 --- /dev/null +++ b/benchproc/testdata/suffixarray.bench @@ -0,0 +1,426 @@ +goos: linux +goarch: amd64 +pkg: index/suffixarray +cpu: Intel(R) Core(TM) i7-8665U CPU @ 1.90GHz +BenchmarkNew/text=opticks/size=100K/bits=32-8 295 4052123 ns/op 24.68 MB/s 401490 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=100K/bits=32-8 297 4072122 ns/op 24.56 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=100K/bits=32-8 295 4236652 ns/op 23.60 MB/s 401489 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=100K/bits=32-8 279 4033154 ns/op 24.79 MB/s 401489 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=100K/bits=32-8 295 4039300 ns/op 24.76 MB/s 401490 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=100K/bits=32-8 295 4047106 ns/op 24.71 MB/s 401489 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=100K/bits=32-8 296 4080614 ns/op 24.51 MB/s 401489 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=100K/bits=32-8 292 4628050 ns/op 21.61 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=100K/bits=32-8 250 4858420 ns/op 20.58 MB/s 401495 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=100K/bits=32-8 246 4775885 ns/op 20.94 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=100K/bits=64-8 250 5146381 ns/op 19.43 MB/s 802897 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=100K/bits=64-8 220 5213987 ns/op 19.18 MB/s 802897 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=100K/bits=64-8 217 5291964 ns/op 18.90 MB/s 802897 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=100K/bits=64-8 235 5068398 ns/op 19.73 MB/s 802897 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=100K/bits=64-8 235 4938145 ns/op 20.25 MB/s 802898 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=100K/bits=64-8 238 5148271 ns/op 19.42 MB/s 802897 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=100K/bits=64-8 246 5338211 ns/op 18.73 MB/s 802899 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=100K/bits=64-8 188 5824187 ns/op 17.17 MB/s 802901 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=100K/bits=64-8 217 5060742 ns/op 19.76 MB/s 802897 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=100K/bits=64-8 235 5217341 ns/op 19.17 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=500K/bits=32-8 44 27085295 ns/op 18.46 MB/s 2007124 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=500K/bits=32-8 44 26814050 ns/op 18.65 MB/s 2007122 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=500K/bits=32-8 40 26639687 ns/op 18.77 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=500K/bits=32-8 45 25644792 ns/op 19.50 MB/s 2007122 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=500K/bits=32-8 45 27397701 ns/op 18.25 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=500K/bits=32-8 44 26078039 ns/op 19.17 MB/s 2007124 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=500K/bits=32-8 48 25371753 ns/op 19.71 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=500K/bits=32-8 44 26175214 ns/op 19.10 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=500K/bits=32-8 43 27787597 ns/op 17.99 MB/s 2007122 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=500K/bits=32-8 38 26538644 ns/op 18.84 MB/s 2007125 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=500K/bits=64-8 44 26520032 ns/op 18.85 MB/s 4005970 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=500K/bits=64-8 43 26658026 ns/op 18.76 MB/s 4005970 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=500K/bits=64-8 45 26744339 ns/op 18.70 MB/s 4005978 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=500K/bits=64-8 43 27396010 ns/op 18.25 MB/s 4005970 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=500K/bits=64-8 43 29622068 ns/op 16.88 MB/s 4005970 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=500K/bits=64-8 45 26382655 ns/op 18.95 MB/s 4005974 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=500K/bits=64-8 45 26472702 ns/op 18.89 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=500K/bits=64-8 45 27309932 ns/op 18.31 MB/s 4005970 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=500K/bits=64-8 43 28565070 ns/op 17.50 MB/s 4005972 B/op 2 allocs/op +BenchmarkNew/text=opticks/size=500K/bits=64-8 40 28274915 ns/op 17.68 MB/s 4005980 B/op 2 allocs/op +BenchmarkNew/text=go/size=100K/bits=32-8 249 4881605 ns/op 20.49 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=go/size=100K/bits=32-8 253 4573302 ns/op 21.87 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=go/size=100K/bits=32-8 259 4588662 ns/op 21.79 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=go/size=100K/bits=32-8 252 4576205 ns/op 21.85 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=go/size=100K/bits=32-8 260 4585606 ns/op 21.81 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=go/size=100K/bits=32-8 240 4812633 ns/op 20.78 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=go/size=100K/bits=32-8 258 4525823 ns/op 22.10 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=go/size=100K/bits=32-8 260 4710165 ns/op 21.23 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=go/size=100K/bits=32-8 261 4604983 ns/op 21.72 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=go/size=100K/bits=32-8 261 4643178 ns/op 21.54 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=go/size=100K/bits=64-8 252 4710485 ns/op 21.23 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=go/size=100K/bits=64-8 243 4699126 ns/op 21.28 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=go/size=100K/bits=64-8 253 4659630 ns/op 21.46 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=go/size=100K/bits=64-8 252 5314740 ns/op 18.82 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=go/size=100K/bits=64-8 250 4715272 ns/op 21.21 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=go/size=100K/bits=64-8 253 4770306 ns/op 20.96 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=go/size=100K/bits=64-8 255 6283260 ns/op 15.92 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=go/size=100K/bits=64-8 195 5975483 ns/op 16.74 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=go/size=100K/bits=64-8 247 4597040 ns/op 21.75 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=go/size=100K/bits=64-8 256 5088847 ns/op 19.65 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=go/size=500K/bits=32-8 40 32395666 ns/op 15.43 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=go/size=500K/bits=32-8 33 30502692 ns/op 16.39 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=go/size=500K/bits=32-8 44 26252125 ns/op 19.05 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=go/size=500K/bits=32-8 44 24853298 ns/op 20.12 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=go/size=500K/bits=32-8 49 25107599 ns/op 19.91 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=go/size=500K/bits=32-8 45 24300527 ns/op 20.58 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=go/size=500K/bits=32-8 50 24283105 ns/op 20.59 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=go/size=500K/bits=32-8 49 24519617 ns/op 20.39 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=go/size=500K/bits=32-8 48 24107192 ns/op 20.74 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=go/size=500K/bits=32-8 48 25517273 ns/op 19.59 MB/s 2007122 B/op 2 allocs/op +BenchmarkNew/text=go/size=500K/bits=64-8 45 25913775 ns/op 19.29 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=go/size=500K/bits=64-8 46 27912582 ns/op 17.91 MB/s 4005970 B/op 2 allocs/op +BenchmarkNew/text=go/size=500K/bits=64-8 46 26413323 ns/op 18.93 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=go/size=500K/bits=64-8 43 25289108 ns/op 19.77 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=go/size=500K/bits=64-8 49 26428054 ns/op 18.92 MB/s 4005971 B/op 2 allocs/op +BenchmarkNew/text=go/size=500K/bits=64-8 48 25487815 ns/op 19.62 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=go/size=500K/bits=64-8 46 25967433 ns/op 19.25 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=go/size=500K/bits=64-8 46 29337237 ns/op 17.04 MB/s 4005970 B/op 2 allocs/op +BenchmarkNew/text=go/size=500K/bits=64-8 46 26036265 ns/op 19.20 MB/s 4005970 B/op 2 allocs/op +BenchmarkNew/text=go/size=500K/bits=64-8 45 25553536 ns/op 19.57 MB/s 4005970 B/op 2 allocs/op +BenchmarkNew/text=go/size=1M/bits=32-8 24 51425478 ns/op 19.45 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=go/size=1M/bits=32-8 22 51767185 ns/op 19.32 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=go/size=1M/bits=32-8 22 51452839 ns/op 19.44 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=go/size=1M/bits=32-8 22 50866589 ns/op 19.66 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=go/size=1M/bits=32-8 21 51407747 ns/op 19.45 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=go/size=1M/bits=32-8 21 51876409 ns/op 19.28 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=go/size=1M/bits=32-8 22 51469835 ns/op 19.43 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=go/size=1M/bits=32-8 22 50805967 ns/op 19.68 MB/s 4005972 B/op 2 allocs/op +BenchmarkNew/text=go/size=1M/bits=32-8 24 50459578 ns/op 19.82 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=go/size=1M/bits=32-8 22 52320898 ns/op 19.11 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=go/size=1M/bits=64-8 20 56187019 ns/op 17.80 MB/s 8003668 B/op 2 allocs/op +BenchmarkNew/text=go/size=1M/bits=64-8 19 56812677 ns/op 17.60 MB/s 8003664 B/op 2 allocs/op +BenchmarkNew/text=go/size=1M/bits=64-8 20 54411271 ns/op 18.38 MB/s 8003664 B/op 2 allocs/op +BenchmarkNew/text=go/size=1M/bits=64-8 21 55917000 ns/op 17.88 MB/s 8003664 B/op 2 allocs/op +BenchmarkNew/text=go/size=1M/bits=64-8 21 55597640 ns/op 17.99 MB/s 8003664 B/op 2 allocs/op +BenchmarkNew/text=go/size=1M/bits=64-8 20 56008349 ns/op 17.85 MB/s 8003664 B/op 2 allocs/op +BenchmarkNew/text=go/size=1M/bits=64-8 20 55588672 ns/op 17.99 MB/s 8003668 B/op 2 allocs/op +BenchmarkNew/text=go/size=1M/bits=64-8 20 54518537 ns/op 18.34 MB/s 8003668 B/op 2 allocs/op +BenchmarkNew/text=go/size=1M/bits=64-8 22 55940751 ns/op 17.88 MB/s 8003664 B/op 2 allocs/op +BenchmarkNew/text=go/size=1M/bits=64-8 22 55014032 ns/op 18.18 MB/s 8003664 B/op 2 allocs/op +BenchmarkNew/text=go/size=5M/bits=32-8 4 332500032 ns/op 15.04 MB/s 20004968 B/op 2 allocs/op +BenchmarkNew/text=go/size=5M/bits=32-8 3 353251996 ns/op 14.15 MB/s 20004944 B/op 2 allocs/op +BenchmarkNew/text=go/size=5M/bits=32-8 4 349921178 ns/op 14.29 MB/s 20004944 B/op 2 allocs/op +BenchmarkNew/text=go/size=5M/bits=32-8 4 294152618 ns/op 17.00 MB/s 20004944 B/op 2 allocs/op +BenchmarkNew/text=go/size=5M/bits=32-8 4 290773832 ns/op 17.20 MB/s 20004944 B/op 2 allocs/op +BenchmarkNew/text=go/size=5M/bits=32-8 4 290526001 ns/op 17.21 MB/s 20004944 B/op 2 allocs/op +BenchmarkNew/text=go/size=5M/bits=32-8 4 285712518 ns/op 17.50 MB/s 20004944 B/op 2 allocs/op +BenchmarkNew/text=go/size=5M/bits=32-8 4 287040332 ns/op 17.42 MB/s 20004944 B/op 2 allocs/op +BenchmarkNew/text=go/size=5M/bits=32-8 4 294170112 ns/op 17.00 MB/s 20004944 B/op 2 allocs/op +BenchmarkNew/text=go/size=5M/bits=32-8 4 288948377 ns/op 17.30 MB/s 20004944 B/op 2 allocs/op +BenchmarkNew/text=go/size=5M/bits=64-8 3 347369765 ns/op 14.39 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=go/size=5M/bits=64-8 3 348656080 ns/op 14.34 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=go/size=5M/bits=64-8 3 343344497 ns/op 14.56 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=go/size=5M/bits=64-8 3 339587446 ns/op 14.72 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=go/size=5M/bits=64-8 3 349482818 ns/op 14.31 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=go/size=5M/bits=64-8 3 343871324 ns/op 14.54 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=go/size=5M/bits=64-8 2 551044062 ns/op 9.07 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=go/size=5M/bits=64-8 3 340988269 ns/op 14.66 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=go/size=5M/bits=64-8 3 352658010 ns/op 14.18 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=go/size=5M/bits=64-8 3 349263921 ns/op 14.32 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=go/size=10M/bits=32-8 2 769239168 ns/op 13.00 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=go/size=10M/bits=32-8 2 855846617 ns/op 11.68 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=go/size=10M/bits=32-8 2 675556240 ns/op 14.80 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=go/size=10M/bits=32-8 2 660881035 ns/op 15.13 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=go/size=10M/bits=32-8 2 823746216 ns/op 12.14 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=go/size=10M/bits=32-8 2 754494396 ns/op 13.25 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=go/size=10M/bits=32-8 2 700564396 ns/op 14.27 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=go/size=10M/bits=32-8 2 811829414 ns/op 12.32 MB/s 40001664 B/op 2 allocs/op +BenchmarkNew/text=go/size=10M/bits=32-8 2 761807961 ns/op 13.13 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=go/size=10M/bits=32-8 2 715951036 ns/op 13.97 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=go/size=10M/bits=64-8 2 849797874 ns/op 11.77 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=go/size=10M/bits=64-8 2 875582536 ns/op 11.42 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=go/size=10M/bits=64-8 2 896566918 ns/op 11.15 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=go/size=10M/bits=64-8 2 825580619 ns/op 12.11 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=go/size=10M/bits=64-8 2 770837676 ns/op 12.97 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=go/size=10M/bits=64-8 2 773857370 ns/op 12.92 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=go/size=10M/bits=64-8 2 775843330 ns/op 12.89 MB/s 80003200 B/op 2 allocs/op +BenchmarkNew/text=go/size=10M/bits=64-8 2 796792699 ns/op 12.55 MB/s 80003248 B/op 3 allocs/op +BenchmarkNew/text=go/size=10M/bits=64-8 2 856954845 ns/op 11.67 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=go/size=10M/bits=64-8 2 790255348 ns/op 12.65 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=go/size=50M/bits=32-8 1 5812724632 ns/op 8.60 MB/s 200007760 B/op 2 allocs/op +BenchmarkNew/text=go/size=50M/bits=32-8 1 5768740575 ns/op 8.67 MB/s 200007760 B/op 2 allocs/op +BenchmarkNew/text=go/size=50M/bits=32-8 1 5896708111 ns/op 8.48 MB/s 200007760 B/op 2 allocs/op +BenchmarkNew/text=go/size=50M/bits=32-8 1 5798423865 ns/op 8.62 MB/s 200007760 B/op 2 allocs/op +BenchmarkNew/text=go/size=50M/bits=32-8 1 5573826077 ns/op 8.97 MB/s 200007760 B/op 2 allocs/op +BenchmarkNew/text=go/size=50M/bits=32-8 1 5809735517 ns/op 8.61 MB/s 200007760 B/op 2 allocs/op +BenchmarkNew/text=go/size=50M/bits=32-8 1 5630933800 ns/op 8.88 MB/s 200007952 B/op 4 allocs/op +BenchmarkNew/text=go/size=50M/bits=32-8 1 5844267122 ns/op 8.56 MB/s 200007760 B/op 2 allocs/op +BenchmarkNew/text=go/size=50M/bits=32-8 1 5739167129 ns/op 8.71 MB/s 200007760 B/op 2 allocs/op +BenchmarkNew/text=go/size=50M/bits=32-8 1 6263358054 ns/op 7.98 MB/s 200007856 B/op 3 allocs/op +BenchmarkNew/text=go/size=50M/bits=64-8 1 6772392325 ns/op 7.38 MB/s 400007248 B/op 2 allocs/op +BenchmarkNew/text=go/size=50M/bits=64-8 1 6485886352 ns/op 7.71 MB/s 400007248 B/op 2 allocs/op +BenchmarkNew/text=go/size=50M/bits=64-8 1 6933794281 ns/op 7.21 MB/s 400007248 B/op 2 allocs/op +BenchmarkNew/text=go/size=50M/bits=64-8 1 7136956950 ns/op 7.01 MB/s 400007344 B/op 3 allocs/op +BenchmarkNew/text=go/size=50M/bits=64-8 1 6560863302 ns/op 7.62 MB/s 400007256 B/op 3 allocs/op +BenchmarkNew/text=go/size=50M/bits=64-8 1 6481320454 ns/op 7.71 MB/s 400007256 B/op 3 allocs/op +BenchmarkNew/text=go/size=50M/bits=64-8 1 5898827051 ns/op 8.48 MB/s 400007344 B/op 3 allocs/op +BenchmarkNew/text=go/size=50M/bits=64-8 1 5854312315 ns/op 8.54 MB/s 400007248 B/op 2 allocs/op +BenchmarkNew/text=go/size=50M/bits=64-8 1 5910294273 ns/op 8.46 MB/s 400007248 B/op 2 allocs/op +BenchmarkNew/text=go/size=50M/bits=64-8 1 5865809619 ns/op 8.52 MB/s 400007248 B/op 2 allocs/op +BenchmarkNew/text=zero/size=100K/bits=32-8 1484 727405 ns/op 137.48 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=zero/size=100K/bits=32-8 1665 715978 ns/op 139.67 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=zero/size=100K/bits=32-8 1664 707566 ns/op 141.33 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=zero/size=100K/bits=32-8 1694 714422 ns/op 139.97 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=zero/size=100K/bits=32-8 1692 705436 ns/op 141.76 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=zero/size=100K/bits=32-8 1706 706477 ns/op 141.55 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=zero/size=100K/bits=32-8 1630 721169 ns/op 138.66 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=zero/size=100K/bits=32-8 1596 741468 ns/op 134.87 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=zero/size=100K/bits=32-8 1616 731019 ns/op 136.80 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=zero/size=100K/bits=32-8 1597 795787 ns/op 125.66 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=zero/size=100K/bits=64-8 1549 778274 ns/op 128.49 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=zero/size=100K/bits=64-8 1528 807422 ns/op 123.85 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=zero/size=100K/bits=64-8 1520 793356 ns/op 126.05 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=zero/size=100K/bits=64-8 1555 777911 ns/op 128.55 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=zero/size=100K/bits=64-8 1398 764437 ns/op 130.82 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=zero/size=100K/bits=64-8 1563 789823 ns/op 126.61 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=zero/size=100K/bits=64-8 1538 762874 ns/op 131.08 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=zero/size=100K/bits=64-8 1522 772133 ns/op 129.51 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=zero/size=100K/bits=64-8 1425 768312 ns/op 130.16 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=zero/size=100K/bits=64-8 1545 845637 ns/op 118.25 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=zero/size=500K/bits=32-8 312 3639917 ns/op 137.37 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=zero/size=500K/bits=32-8 327 3698585 ns/op 135.19 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=zero/size=500K/bits=32-8 302 3876299 ns/op 128.99 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=zero/size=500K/bits=32-8 237 5522154 ns/op 90.54 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=zero/size=500K/bits=32-8 309 3701258 ns/op 135.09 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=zero/size=500K/bits=32-8 338 3586236 ns/op 139.42 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=zero/size=500K/bits=32-8 331 3520665 ns/op 142.02 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=zero/size=500K/bits=32-8 313 3552518 ns/op 140.75 MB/s 2007121 B/op 2 allocs/op +BenchmarkNew/text=zero/size=500K/bits=32-8 332 3726036 ns/op 134.19 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=zero/size=500K/bits=32-8 336 3701852 ns/op 135.07 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=zero/size=500K/bits=64-8 304 3863971 ns/op 129.40 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=zero/size=500K/bits=64-8 297 3806994 ns/op 131.34 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=zero/size=500K/bits=64-8 297 3893789 ns/op 128.41 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=zero/size=500K/bits=64-8 309 3995320 ns/op 125.15 MB/s 4005969 B/op 2 allocs/op +BenchmarkNew/text=zero/size=500K/bits=64-8 313 3934741 ns/op 127.07 MB/s 4005969 B/op 2 allocs/op +BenchmarkNew/text=zero/size=500K/bits=64-8 309 3995117 ns/op 125.15 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=zero/size=500K/bits=64-8 295 4026636 ns/op 124.17 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=zero/size=500K/bits=64-8 290 3922376 ns/op 127.47 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=zero/size=500K/bits=64-8 309 3969820 ns/op 125.95 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=zero/size=500K/bits=64-8 315 3936517 ns/op 127.02 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=zero/size=1M/bits=32-8 168 7515882 ns/op 133.05 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=zero/size=1M/bits=32-8 148 7550817 ns/op 132.44 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=zero/size=1M/bits=32-8 166 7357208 ns/op 135.92 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=zero/size=1M/bits=32-8 158 7246776 ns/op 137.99 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=zero/size=1M/bits=32-8 169 7238432 ns/op 138.15 MB/s 4005969 B/op 2 allocs/op +BenchmarkNew/text=zero/size=1M/bits=32-8 166 7174621 ns/op 139.38 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=zero/size=1M/bits=32-8 163 7276260 ns/op 137.43 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=zero/size=1M/bits=32-8 162 6966149 ns/op 143.55 MB/s 4005970 B/op 2 allocs/op +BenchmarkNew/text=zero/size=1M/bits=32-8 159 6980433 ns/op 143.26 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=zero/size=1M/bits=32-8 158 7215231 ns/op 138.60 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=zero/size=1M/bits=64-8 141 7916198 ns/op 126.32 MB/s 8003664 B/op 2 allocs/op +BenchmarkNew/text=zero/size=1M/bits=64-8 147 7791251 ns/op 128.35 MB/s 8003665 B/op 2 allocs/op +BenchmarkNew/text=zero/size=1M/bits=64-8 144 7758872 ns/op 128.88 MB/s 8003666 B/op 2 allocs/op +BenchmarkNew/text=zero/size=1M/bits=64-8 147 7747113 ns/op 129.08 MB/s 8003665 B/op 2 allocs/op +BenchmarkNew/text=zero/size=1M/bits=64-8 150 7705199 ns/op 129.78 MB/s 8003664 B/op 2 allocs/op +BenchmarkNew/text=zero/size=1M/bits=64-8 150 7723185 ns/op 129.48 MB/s 8003664 B/op 2 allocs/op +BenchmarkNew/text=zero/size=1M/bits=64-8 150 8190293 ns/op 122.10 MB/s 8003664 B/op 2 allocs/op +BenchmarkNew/text=zero/size=1M/bits=64-8 139 7791215 ns/op 128.35 MB/s 8003665 B/op 2 allocs/op +BenchmarkNew/text=zero/size=1M/bits=64-8 150 7725553 ns/op 129.44 MB/s 8003664 B/op 2 allocs/op +BenchmarkNew/text=zero/size=1M/bits=64-8 151 7747238 ns/op 129.08 MB/s 8003665 B/op 2 allocs/op +BenchmarkNew/text=zero/size=5M/bits=32-8 32 37332589 ns/op 133.93 MB/s 20004947 B/op 2 allocs/op +BenchmarkNew/text=zero/size=5M/bits=32-8 33 36437872 ns/op 137.22 MB/s 20004947 B/op 2 allocs/op +BenchmarkNew/text=zero/size=5M/bits=32-8 31 37473708 ns/op 133.43 MB/s 20004947 B/op 2 allocs/op +BenchmarkNew/text=zero/size=5M/bits=32-8 32 37513925 ns/op 133.28 MB/s 20004944 B/op 2 allocs/op +BenchmarkNew/text=zero/size=5M/bits=32-8 30 36379171 ns/op 137.44 MB/s 20004947 B/op 2 allocs/op +BenchmarkNew/text=zero/size=5M/bits=32-8 32 38026958 ns/op 131.49 MB/s 20004944 B/op 2 allocs/op +BenchmarkNew/text=zero/size=5M/bits=32-8 31 36567303 ns/op 136.73 MB/s 20004950 B/op 2 allocs/op +BenchmarkNew/text=zero/size=5M/bits=32-8 33 37774383 ns/op 132.36 MB/s 20004950 B/op 2 allocs/op +BenchmarkNew/text=zero/size=5M/bits=32-8 31 37131728 ns/op 134.66 MB/s 20004944 B/op 2 allocs/op +BenchmarkNew/text=zero/size=5M/bits=32-8 32 36671976 ns/op 136.34 MB/s 20004950 B/op 2 allocs/op +BenchmarkNew/text=zero/size=5M/bits=64-8 32 39037742 ns/op 128.08 MB/s 40001619 B/op 2 allocs/op +BenchmarkNew/text=zero/size=5M/bits=64-8 31 38933667 ns/op 128.42 MB/s 40001619 B/op 2 allocs/op +BenchmarkNew/text=zero/size=5M/bits=64-8 30 37941873 ns/op 131.78 MB/s 40001620 B/op 2 allocs/op +BenchmarkNew/text=zero/size=5M/bits=64-8 30 38945001 ns/op 128.39 MB/s 40001619 B/op 2 allocs/op +BenchmarkNew/text=zero/size=5M/bits=64-8 31 37265318 ns/op 134.17 MB/s 40001625 B/op 2 allocs/op +BenchmarkNew/text=zero/size=5M/bits=64-8 30 37793802 ns/op 132.30 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=zero/size=5M/bits=64-8 31 42996058 ns/op 116.29 MB/s 40001619 B/op 2 allocs/op +BenchmarkNew/text=zero/size=5M/bits=64-8 28 38175289 ns/op 130.97 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=zero/size=5M/bits=64-8 31 38047029 ns/op 131.42 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=zero/size=5M/bits=64-8 31 47418258 ns/op 105.44 MB/s 40001622 B/op 2 allocs/op +BenchmarkNew/text=zero/size=10M/bits=32-8 15 71354646 ns/op 140.15 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=zero/size=10M/bits=32-8 15 71505654 ns/op 139.85 MB/s 40001622 B/op 2 allocs/op +BenchmarkNew/text=zero/size=10M/bits=32-8 16 71271033 ns/op 140.31 MB/s 40001617 B/op 2 allocs/op +BenchmarkNew/text=zero/size=10M/bits=32-8 16 69770852 ns/op 143.33 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=zero/size=10M/bits=32-8 16 72129407 ns/op 138.64 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=zero/size=10M/bits=32-8 16 70662213 ns/op 141.52 MB/s 40001622 B/op 2 allocs/op +BenchmarkNew/text=zero/size=10M/bits=32-8 15 73789524 ns/op 135.52 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=zero/size=10M/bits=32-8 15 72695944 ns/op 137.56 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=zero/size=10M/bits=32-8 15 70166877 ns/op 142.52 MB/s 40001622 B/op 2 allocs/op +BenchmarkNew/text=zero/size=10M/bits=32-8 16 72159965 ns/op 138.58 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=zero/size=10M/bits=64-8 15 75123311 ns/op 133.11 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=zero/size=10M/bits=64-8 14 75808918 ns/op 131.91 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=zero/size=10M/bits=64-8 15 77830632 ns/op 128.48 MB/s 80003153 B/op 2 allocs/op +BenchmarkNew/text=zero/size=10M/bits=64-8 14 75492911 ns/op 132.46 MB/s 80003159 B/op 2 allocs/op +BenchmarkNew/text=zero/size=10M/bits=64-8 15 76340903 ns/op 130.99 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=zero/size=10M/bits=64-8 15 73616399 ns/op 135.84 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=zero/size=10M/bits=64-8 15 77304055 ns/op 129.36 MB/s 80003164 B/op 2 allocs/op +BenchmarkNew/text=zero/size=10M/bits=64-8 15 76386576 ns/op 130.91 MB/s 80003164 B/op 2 allocs/op +BenchmarkNew/text=zero/size=10M/bits=64-8 15 73808334 ns/op 135.49 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=zero/size=10M/bits=64-8 15 75785043 ns/op 131.95 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=zero/size=50M/bits=32-8 3 381664629 ns/op 131.01 MB/s 200007760 B/op 2 allocs/op +BenchmarkNew/text=zero/size=50M/bits=32-8 3 361372237 ns/op 138.36 MB/s 200007792 B/op 2 allocs/op +BenchmarkNew/text=zero/size=50M/bits=32-8 3 373009517 ns/op 134.04 MB/s 200007762 B/op 2 allocs/op +BenchmarkNew/text=zero/size=50M/bits=32-8 3 359590450 ns/op 139.05 MB/s 200007794 B/op 2 allocs/op +BenchmarkNew/text=zero/size=50M/bits=32-8 3 348689051 ns/op 143.39 MB/s 200007858 B/op 3 allocs/op +BenchmarkNew/text=zero/size=50M/bits=32-8 3 355056051 ns/op 140.82 MB/s 200007760 B/op 2 allocs/op +BenchmarkNew/text=zero/size=50M/bits=32-8 3 362336814 ns/op 137.99 MB/s 200007762 B/op 2 allocs/op +BenchmarkNew/text=zero/size=50M/bits=32-8 3 360951205 ns/op 138.52 MB/s 200007762 B/op 2 allocs/op +BenchmarkNew/text=zero/size=50M/bits=32-8 3 365680067 ns/op 136.73 MB/s 200007794 B/op 2 allocs/op +BenchmarkNew/text=zero/size=50M/bits=32-8 3 364602240 ns/op 137.14 MB/s 200007760 B/op 2 allocs/op +BenchmarkNew/text=zero/size=50M/bits=64-8 3 455524505 ns/op 109.76 MB/s 400007248 B/op 2 allocs/op +BenchmarkNew/text=zero/size=50M/bits=64-8 3 402870428 ns/op 124.11 MB/s 400007250 B/op 2 allocs/op +BenchmarkNew/text=zero/size=50M/bits=64-8 3 384374359 ns/op 130.08 MB/s 400007280 B/op 2 allocs/op +BenchmarkNew/text=zero/size=50M/bits=64-8 3 398524273 ns/op 125.46 MB/s 400007248 B/op 2 allocs/op +BenchmarkNew/text=zero/size=50M/bits=64-8 3 399095084 ns/op 125.28 MB/s 400007250 B/op 2 allocs/op +BenchmarkNew/text=zero/size=50M/bits=64-8 3 447112676 ns/op 111.83 MB/s 400007248 B/op 2 allocs/op +BenchmarkNew/text=zero/size=50M/bits=64-8 3 388833623 ns/op 128.59 MB/s 400007250 B/op 2 allocs/op +BenchmarkNew/text=zero/size=50M/bits=64-8 3 380795710 ns/op 131.30 MB/s 400007248 B/op 2 allocs/op +BenchmarkNew/text=zero/size=50M/bits=64-8 3 395856899 ns/op 126.31 MB/s 400007282 B/op 2 allocs/op +BenchmarkNew/text=zero/size=50M/bits=64-8 3 394045040 ns/op 126.89 MB/s 400007248 B/op 2 allocs/op +BenchmarkNew/text=rand/size=100K/bits=32-8 284 4408977 ns/op 22.68 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=rand/size=100K/bits=32-8 279 4406303 ns/op 22.69 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=rand/size=100K/bits=32-8 279 4362652 ns/op 22.92 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=rand/size=100K/bits=32-8 270 4254645 ns/op 23.50 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=rand/size=100K/bits=32-8 260 4336271 ns/op 23.06 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=rand/size=100K/bits=32-8 276 4453020 ns/op 22.46 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=rand/size=100K/bits=32-8 277 4434743 ns/op 22.55 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=rand/size=100K/bits=32-8 278 4345776 ns/op 23.01 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=rand/size=100K/bits=32-8 271 4467379 ns/op 22.38 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=rand/size=100K/bits=32-8 266 4260844 ns/op 23.47 MB/s 401488 B/op 2 allocs/op +BenchmarkNew/text=rand/size=100K/bits=64-8 254 4955640 ns/op 20.18 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=rand/size=100K/bits=64-8 241 4754420 ns/op 21.03 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=rand/size=100K/bits=64-8 266 4656703 ns/op 21.47 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=rand/size=100K/bits=64-8 265 4631085 ns/op 21.59 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=rand/size=100K/bits=64-8 261 4543270 ns/op 22.01 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=rand/size=100K/bits=64-8 250 4594390 ns/op 21.77 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=rand/size=100K/bits=64-8 242 4567103 ns/op 21.90 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=rand/size=100K/bits=64-8 264 4698949 ns/op 21.28 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=rand/size=100K/bits=64-8 262 4689148 ns/op 21.33 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=rand/size=100K/bits=64-8 265 4596534 ns/op 21.76 MB/s 802896 B/op 2 allocs/op +BenchmarkNew/text=rand/size=500K/bits=32-8 44 24647096 ns/op 20.29 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=rand/size=500K/bits=32-8 50 25301072 ns/op 19.76 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=rand/size=500K/bits=32-8 46 24031531 ns/op 20.81 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=rand/size=500K/bits=32-8 50 25481328 ns/op 19.62 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=rand/size=500K/bits=32-8 48 25162863 ns/op 19.87 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=rand/size=500K/bits=32-8 46 25544517 ns/op 19.57 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=rand/size=500K/bits=32-8 46 25869593 ns/op 19.33 MB/s 2007122 B/op 2 allocs/op +BenchmarkNew/text=rand/size=500K/bits=32-8 46 24193446 ns/op 20.67 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=rand/size=500K/bits=32-8 45 24104116 ns/op 20.74 MB/s 2007122 B/op 2 allocs/op +BenchmarkNew/text=rand/size=500K/bits=32-8 49 25772794 ns/op 19.40 MB/s 2007120 B/op 2 allocs/op +BenchmarkNew/text=rand/size=500K/bits=64-8 43 27852949 ns/op 17.95 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=rand/size=500K/bits=64-8 43 27751979 ns/op 18.02 MB/s 4005970 B/op 2 allocs/op +BenchmarkNew/text=rand/size=500K/bits=64-8 43 27290496 ns/op 18.32 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=rand/size=500K/bits=64-8 36 28018276 ns/op 17.85 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=rand/size=500K/bits=64-8 43 27364653 ns/op 18.27 MB/s 4005972 B/op 2 allocs/op +BenchmarkNew/text=rand/size=500K/bits=64-8 43 26964873 ns/op 18.54 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=rand/size=500K/bits=64-8 44 27574712 ns/op 18.13 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=rand/size=500K/bits=64-8 43 26820446 ns/op 18.64 MB/s 4005970 B/op 2 allocs/op +BenchmarkNew/text=rand/size=500K/bits=64-8 37 27644329 ns/op 18.09 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=rand/size=500K/bits=64-8 40 27746697 ns/op 18.02 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=rand/size=1M/bits=32-8 19 53712115 ns/op 18.62 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=rand/size=1M/bits=32-8 21 55783194 ns/op 17.93 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=rand/size=1M/bits=32-8 20 54828846 ns/op 18.24 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=rand/size=1M/bits=32-8 21 55521928 ns/op 18.01 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=rand/size=1M/bits=32-8 21 54860538 ns/op 18.23 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=rand/size=1M/bits=32-8 20 55811376 ns/op 17.92 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=rand/size=1M/bits=32-8 21 55320207 ns/op 18.08 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=rand/size=1M/bits=32-8 20 53565863 ns/op 18.67 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=rand/size=1M/bits=32-8 21 55678270 ns/op 17.96 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=rand/size=1M/bits=32-8 21 55087613 ns/op 18.15 MB/s 4005968 B/op 2 allocs/op +BenchmarkNew/text=rand/size=1M/bits=64-8 15 69047486 ns/op 14.48 MB/s 8003664 B/op 2 allocs/op +BenchmarkNew/text=rand/size=1M/bits=64-8 15 70674601 ns/op 14.15 MB/s 8003670 B/op 2 allocs/op +BenchmarkNew/text=rand/size=1M/bits=64-8 15 67324925 ns/op 14.85 MB/s 8003664 B/op 2 allocs/op +BenchmarkNew/text=rand/size=1M/bits=64-8 15 71091899 ns/op 14.07 MB/s 8003664 B/op 2 allocs/op +BenchmarkNew/text=rand/size=1M/bits=64-8 15 66926829 ns/op 14.94 MB/s 8003670 B/op 2 allocs/op +BenchmarkNew/text=rand/size=1M/bits=64-8 15 72174037 ns/op 13.86 MB/s 8003664 B/op 2 allocs/op +BenchmarkNew/text=rand/size=1M/bits=64-8 15 86964283 ns/op 11.50 MB/s 8003664 B/op 2 allocs/op +BenchmarkNew/text=rand/size=1M/bits=64-8 14 72005011 ns/op 13.89 MB/s 8003664 B/op 2 allocs/op +BenchmarkNew/text=rand/size=1M/bits=64-8 15 67411708 ns/op 14.83 MB/s 8003664 B/op 2 allocs/op +BenchmarkNew/text=rand/size=1M/bits=64-8 15 71361519 ns/op 14.01 MB/s 8003670 B/op 2 allocs/op +BenchmarkNew/text=rand/size=5M/bits=32-8 2 738837715 ns/op 6.77 MB/s 20004944 B/op 2 allocs/op +BenchmarkNew/text=rand/size=5M/bits=32-8 2 761109362 ns/op 6.57 MB/s 20004944 B/op 2 allocs/op +BenchmarkNew/text=rand/size=5M/bits=32-8 2 763231942 ns/op 6.55 MB/s 20004944 B/op 2 allocs/op +BenchmarkNew/text=rand/size=5M/bits=32-8 2 745854286 ns/op 6.70 MB/s 20004944 B/op 2 allocs/op +BenchmarkNew/text=rand/size=5M/bits=32-8 2 743247344 ns/op 6.73 MB/s 20004944 B/op 2 allocs/op +BenchmarkNew/text=rand/size=5M/bits=32-8 2 710659930 ns/op 7.04 MB/s 20004944 B/op 2 allocs/op +BenchmarkNew/text=rand/size=5M/bits=32-8 2 723174605 ns/op 6.91 MB/s 20004944 B/op 2 allocs/op +BenchmarkNew/text=rand/size=5M/bits=32-8 2 756145239 ns/op 6.61 MB/s 20004944 B/op 2 allocs/op +BenchmarkNew/text=rand/size=5M/bits=32-8 2 733866032 ns/op 6.81 MB/s 20004944 B/op 2 allocs/op +BenchmarkNew/text=rand/size=5M/bits=32-8 2 748564354 ns/op 6.68 MB/s 20004944 B/op 2 allocs/op +BenchmarkNew/text=rand/size=5M/bits=64-8 2 1016575738 ns/op 4.92 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=rand/size=5M/bits=64-8 1 1042405873 ns/op 4.80 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=rand/size=5M/bits=64-8 2 997183992 ns/op 5.01 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=rand/size=5M/bits=64-8 1 1038265696 ns/op 4.82 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=rand/size=5M/bits=64-8 2 1002359936 ns/op 4.99 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=rand/size=5M/bits=64-8 1 1030955285 ns/op 4.85 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=rand/size=5M/bits=64-8 1 1023955664 ns/op 4.88 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=rand/size=5M/bits=64-8 1 1039659576 ns/op 4.81 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=rand/size=5M/bits=64-8 2 999030534 ns/op 5.00 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=rand/size=5M/bits=64-8 1 1024534960 ns/op 4.88 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=rand/size=10M/bits=32-8 1 2416850684 ns/op 4.14 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=rand/size=10M/bits=32-8 1 2466009580 ns/op 4.06 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=rand/size=10M/bits=32-8 1 2430925724 ns/op 4.11 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=rand/size=10M/bits=32-8 1 2461353249 ns/op 4.06 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=rand/size=10M/bits=32-8 1 2387771124 ns/op 4.19 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=rand/size=10M/bits=32-8 1 2547479020 ns/op 3.93 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=rand/size=10M/bits=32-8 1 3057884074 ns/op 3.27 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=rand/size=10M/bits=32-8 1 2473146129 ns/op 4.04 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=rand/size=10M/bits=32-8 1 2668988254 ns/op 3.75 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=rand/size=10M/bits=32-8 1 2662820183 ns/op 3.76 MB/s 40001616 B/op 2 allocs/op +BenchmarkNew/text=rand/size=10M/bits=64-8 1 2791136532 ns/op 3.58 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=rand/size=10M/bits=64-8 1 2763661048 ns/op 3.62 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=rand/size=10M/bits=64-8 1 2811832311 ns/op 3.56 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=rand/size=10M/bits=64-8 1 2841755743 ns/op 3.52 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=rand/size=10M/bits=64-8 1 2831109870 ns/op 3.53 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=rand/size=10M/bits=64-8 1 2770227888 ns/op 3.61 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=rand/size=10M/bits=64-8 1 2862421840 ns/op 3.49 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=rand/size=10M/bits=64-8 1 2987088296 ns/op 3.35 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=rand/size=10M/bits=64-8 1 2918486027 ns/op 3.43 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=rand/size=10M/bits=64-8 1 2841186144 ns/op 3.52 MB/s 80003152 B/op 2 allocs/op +BenchmarkNew/text=rand/size=50M/bits=32-8 1 19977681872 ns/op 2.50 MB/s 200007760 B/op 2 allocs/op +BenchmarkNew/text=rand/size=50M/bits=32-8 1 20646546508 ns/op 2.42 MB/s 200007760 B/op 2 allocs/op +BenchmarkNew/text=rand/size=50M/bits=32-8 1 20074292053 ns/op 2.49 MB/s 200007760 B/op 2 allocs/op +BenchmarkNew/text=rand/size=50M/bits=32-8 1 20076651502 ns/op 2.49 MB/s 200007760 B/op 2 allocs/op +BenchmarkNew/text=rand/size=50M/bits=32-8 1 20024358510 ns/op 2.50 MB/s 200007760 B/op 2 allocs/op +BenchmarkNew/text=rand/size=50M/bits=32-8 1 19942692561 ns/op 2.51 MB/s 200007760 B/op 2 allocs/op +BenchmarkNew/text=rand/size=50M/bits=32-8 1 19958291272 ns/op 2.51 MB/s 200007760 B/op 2 allocs/op +BenchmarkNew/text=rand/size=50M/bits=32-8 1 20036471306 ns/op 2.50 MB/s 200007760 B/op 2 allocs/op +BenchmarkNew/text=rand/size=50M/bits=32-8 1 20050417086 ns/op 2.49 MB/s 200007760 B/op 2 allocs/op +BenchmarkNew/text=rand/size=50M/bits=32-8 1 20003118625 ns/op 2.50 MB/s 200007760 B/op 2 allocs/op +BenchmarkNew/text=rand/size=50M/bits=64-8 1 21960608536 ns/op 2.28 MB/s 400007248 B/op 2 allocs/op +BenchmarkNew/text=rand/size=50M/bits=64-8 1 21585443360 ns/op 2.32 MB/s 400007344 B/op 3 allocs/op +BenchmarkNew/text=rand/size=50M/bits=64-8 1 21758375298 ns/op 2.30 MB/s 400007248 B/op 2 allocs/op +BenchmarkNew/text=rand/size=50M/bits=64-8 1 21593831587 ns/op 2.32 MB/s 400007248 B/op 2 allocs/op +BenchmarkNew/text=rand/size=50M/bits=64-8 1 23245984851 ns/op 2.15 MB/s 400007248 B/op 2 allocs/op +BenchmarkNew/text=rand/size=50M/bits=64-8 1 19939552270 ns/op 2.51 MB/s 400007248 B/op 2 allocs/op +BenchmarkNew/text=rand/size=50M/bits=64-8 1 20251200891 ns/op 2.47 MB/s 400007248 B/op 2 allocs/op +BenchmarkNew/text=rand/size=50M/bits=64-8 1 19902268729 ns/op 2.51 MB/s 400007248 B/op 2 allocs/op +BenchmarkNew/text=rand/size=50M/bits=64-8 1 19694020826 ns/op 2.54 MB/s 400007248 B/op 2 allocs/op +BenchmarkNew/text=rand/size=50M/bits=64-8 1 21201165734 ns/op 2.36 MB/s 400007248 B/op 2 allocs/op +BenchmarkSaveRestore/bits=32-8 99 12350280 ns/op 338.43 MB/s 5275651 B/op 4 allocs/op +BenchmarkSaveRestore/bits=32-8 100 11937168 ns/op 350.14 MB/s 5275650 B/op 4 allocs/op +BenchmarkSaveRestore/bits=32-8 100 12955449 ns/op 322.62 MB/s 5275649 B/op 4 allocs/op +BenchmarkSaveRestore/bits=32-8 73 13942380 ns/op 299.79 MB/s 5275650 B/op 4 allocs/op +BenchmarkSaveRestore/bits=32-8 91 12913585 ns/op 323.67 MB/s 5275650 B/op 4 allocs/op +BenchmarkSaveRestore/bits=32-8 100 12052079 ns/op 346.81 MB/s 5275649 B/op 4 allocs/op +BenchmarkSaveRestore/bits=32-8 100 11991028 ns/op 348.57 MB/s 5275648 B/op 4 allocs/op +BenchmarkSaveRestore/bits=32-8 100 12614402 ns/op 331.35 MB/s 5275651 B/op 4 allocs/op +BenchmarkSaveRestore/bits=32-8 94 14026429 ns/op 297.99 MB/s 5275651 B/op 4 allocs/op +BenchmarkSaveRestore/bits=32-8 81 14431203 ns/op 289.63 MB/s 5275648 B/op 4 allocs/op +BenchmarkSaveRestore/bits=64-8 69 17134842 ns/op 243.93 MB/s 9469953 B/op 4 allocs/op +BenchmarkSaveRestore/bits=64-8 72 14022072 ns/op 298.08 MB/s 9469954 B/op 4 allocs/op +BenchmarkSaveRestore/bits=64-8 91 12663109 ns/op 330.07 MB/s 9469953 B/op 4 allocs/op +BenchmarkSaveRestore/bits=64-8 93 13233481 ns/op 315.84 MB/s 9469953 B/op 4 allocs/op +BenchmarkSaveRestore/bits=64-8 79 14574223 ns/op 286.79 MB/s 9469954 B/op 4 allocs/op +BenchmarkSaveRestore/bits=64-8 82 14464183 ns/op 288.97 MB/s 9469952 B/op 4 allocs/op +BenchmarkSaveRestore/bits=64-8 87 12960060 ns/op 322.51 MB/s 9469955 B/op 4 allocs/op +BenchmarkSaveRestore/bits=64-8 93 12684501 ns/op 329.51 MB/s 9469955 B/op 4 allocs/op +BenchmarkSaveRestore/bits=64-8 93 14241606 ns/op 293.49 MB/s 9469954 B/op 4 allocs/op +BenchmarkSaveRestore/bits=64-8 91 12699273 ns/op 329.13 MB/s 9469954 B/op 4 allocs/op +PASS +ok index/suffixarray 1167.808s