veyron/runtimes/google/ipc: Cleanup IPC benchmarks.

  Go 1.4 TestMain allows to run a custom main even with go test command.
  This cl adds a new benchmark utils to inject additional stats (histogram)
  outputs to the benchmark results.

  I also renamed ipc/benchmarks to ipc/benchmark for consistency
  as all other benchmark directories.

  A new benchmark results show that IPC performance (specially with small
  payloads) gets slowed down by 2X than 2-weeks ago.

Change-Id: Iccc136a6363ddb33e27fc72d0940fa8f8c00f178
diff --git a/lib/testutil/stats.go b/lib/testutil/benchmark/stats.go
similarity index 62%
rename from lib/testutil/stats.go
rename to lib/testutil/benchmark/stats.go
index d3d3397..62790a6 100644
--- a/lib/testutil/stats.go
+++ b/lib/testutil/benchmark/stats.go
@@ -1,4 +1,4 @@
-package testutil
+package benchmark
 
 import (
 	"bytes"
@@ -10,9 +10,9 @@
 	"v.io/core/veyron/lib/stats/histogram"
 )
 
-// BenchStats is a simple helper for gathering additional statistics
-// like histogram during benchmarks. This is not thread safe.
-type BenchStats struct {
+// Stats is a simple helper for gathering additional statistics like histogram
+// during benchmarks. This is not thread safe.
+type Stats struct {
 	numBuckets int
 	unit       time.Duration
 	min, max   int64
@@ -24,35 +24,36 @@
 
 type durationSlice []time.Duration
 
-// NewBenchStats creates a new BenchStats instance. If numBuckets is not
-// positive, the default value (16) will be used.
-func NewBenchStats(numBuckets int) *BenchStats {
+// NewStats creates a new Stats instance. If numBuckets is not positive,
+// the default value (16) will be used.
+func NewStats(numBuckets int) *Stats {
 	if numBuckets <= 0 {
 		numBuckets = 16
 	}
-	return &BenchStats{
+	return &Stats{
 		// Use one more bucket for the last unbounded bucket.
 		numBuckets: numBuckets + 1,
 		durations:  make(durationSlice, 0, 100000),
 	}
 }
 
-// Add adds an elapsed time per operation to the BenchStats.
-func (stats *BenchStats) Add(d time.Duration) {
+// Add adds an elapsed time per operation to the stats.
+func (stats *Stats) Add(d time.Duration) {
 	stats.durations = append(stats.durations, d)
 	stats.dirty = true
 }
 
 // Clear resets the stats, removing all values.
-func (stats *BenchStats) Clear() {
+func (stats *Stats) Clear() {
 	stats.durations = stats.durations[:0]
-	stats.dirty = true
+	stats.histogram = nil
+	stats.dirty = false
 }
 
 // maybeUpdate updates internal stat data if there was any newly added
 // stats since this was updated.
-func (stats *BenchStats) maybeUpdate() {
-	if !stats.dirty || len(stats.durations) == 0 {
+func (stats *Stats) maybeUpdate() {
+	if !stats.dirty {
 		return
 	}
 
@@ -79,9 +80,12 @@
 	// Adjust the min/max according to the new unit.
 	stats.min /= int64(stats.unit)
 	stats.max /= int64(stats.unit)
-
+	numBuckets := stats.numBuckets
+	if n := int(stats.max - stats.min + 1); n < numBuckets {
+		numBuckets = n
+	}
 	stats.histogram = histogram.New(histogram.Options{
-		NumBuckets: stats.numBuckets,
+		NumBuckets: numBuckets,
 		// max(i.e., Nth lower bound) = min + (1 + growthFactor)^(numBuckets-2).
 		GrowthFactor:       math.Pow(float64(stats.max-stats.min), 1/float64(stats.numBuckets-2)) - 1,
 		SmallestBucketSize: 1.0,
@@ -94,16 +98,20 @@
 	stats.dirty = false
 }
 
-// Print writes textual output of the BenchStats.
-func (stats *BenchStats) Print(w io.Writer) {
+// Print writes textual output of the Stats.
+func (stats *Stats) Print(w io.Writer) {
 	stats.maybeUpdate()
 
-	fmt.Fprintf(w, "Histogram (unit: %s)\n", fmt.Sprintf("%v", stats.unit)[1:])
-	stats.histogram.Value().Print(w)
+	if stats.histogram == nil {
+		fmt.Fprint(w, "Histogram (empty)\n")
+	} else {
+		fmt.Fprintf(w, "Histogram (unit: %s)\n", fmt.Sprintf("%v", stats.unit)[1:])
+		stats.histogram.Value().Print(w)
+	}
 }
 
-// String returns the textual output of the BenchStats as string.
-func (stats *BenchStats) String() string {
+// String returns the textual output of the Stats as string.
+func (stats *Stats) String() string {
 	var b bytes.Buffer
 	stats.Print(&b)
 	return b.String()
diff --git a/lib/testutil/benchmark/stats_test.go b/lib/testutil/benchmark/stats_test.go
new file mode 100644
index 0000000..7072963
--- /dev/null
+++ b/lib/testutil/benchmark/stats_test.go
@@ -0,0 +1,29 @@
+package benchmark_test
+
+import (
+	"strings"
+	"testing"
+	"time"
+
+	"v.io/core/veyron/lib/testutil/benchmark"
+)
+
+func TestStatsBasic(t *testing.T) {
+	stats := benchmark.NewStats(16)
+	if !strings.Contains(stats.String(), "Histogram (empty)") {
+		t.Errorf("unexpect stats output:\n%s\n", stats.String())
+	}
+
+	for i := time.Duration(1); i <= 10; i++ {
+		stats.Add(i * time.Millisecond)
+	}
+
+	if !strings.Contains(stats.String(), "Count: 10 ") {
+		t.Errorf("unexpect stats output:\n%s\n", stats.String())
+	}
+
+	stats.Clear()
+	if !strings.Contains(stats.String(), "Histogram (empty)") {
+		t.Errorf("unexpect stats output:\n%s\n", stats.String())
+	}
+}
diff --git a/lib/testutil/benchmark/util.go b/lib/testutil/benchmark/util.go
new file mode 100644
index 0000000..ef76c2a
--- /dev/null
+++ b/lib/testutil/benchmark/util.go
@@ -0,0 +1,191 @@
+package benchmark
+
+import (
+	"bufio"
+	"bytes"
+	"fmt"
+	"os"
+	"runtime"
+	"sort"
+	"strings"
+	"sync"
+	"testing"
+)
+
+var (
+	curB         *testing.B
+	curBenchName string
+	curStats     map[string]*Stats
+
+	orgStdout  *os.File
+	nextOutPos int
+
+	injectCond *sync.Cond
+	injectDone chan struct{}
+)
+
+// AddStats adds a new unnamed Stats instance to the current benchmark. You need
+// to run benchmarks by calling RunTestMain() to inject the stats to the
+// benchmark results. If numBuckets is not positive, the default value (16) will
+// be used. Please note that this calls b.ResetTimer() since it may be blocked
+// until the previous benchmark stats is printed out. So AddStats() should
+// typically be called at the very beginning of each benchmark function.
+func AddStats(b *testing.B, numBuckets int) *Stats {
+	return AddStatsWithName(b, "", numBuckets)
+}
+
+// AddStatsWithName adds a new named Stats instance to the current benchmark.
+// With this, you can add multiple stats in a single benchmark. You need
+// to run benchmarks by calling RunTestMain() to inject the stats to the
+// benchmark results. If numBuckets is not positive, the default value (16) will
+// be used. Please note that this calls b.ResetTimer() since it may be blocked
+// until the previous benchmark stats is printed out. So AddStatsWithName()
+// should typically be called at the very beginning of each benchmark function.
+func AddStatsWithName(b *testing.B, name string, numBuckets int) *Stats {
+	var benchName string
+	for i := 1; ; i++ {
+		pc, _, _, ok := runtime.Caller(i)
+		if !ok {
+			panic("benchmark function not found")
+		}
+		p := strings.Split(runtime.FuncForPC(pc).Name(), ".")
+		benchName = p[len(p)-1]
+		if strings.HasPrefix(benchName, "Benchmark") {
+			break
+		}
+	}
+	procs := runtime.GOMAXPROCS(-1)
+	if procs != 1 {
+		benchName = fmt.Sprintf("%s-%d", benchName, procs)
+	}
+
+	stats := NewStats(numBuckets)
+
+	if injectCond != nil {
+		// We need to wait until the previous benchmark stats is printed out.
+		injectCond.L.Lock()
+		for curB != nil && curBenchName != benchName {
+			injectCond.Wait()
+		}
+
+		curB = b
+		curBenchName = benchName
+		curStats[name] = stats
+
+		injectCond.L.Unlock()
+	}
+
+	b.ResetTimer()
+	return stats
+}
+
+// RunTestMain runs the tests with enabling injection of benchmark stats. It
+// returns an exit code to pass to os.Exit.
+func RunTestMain(m *testing.M) int {
+	startStatsInjector()
+	defer stopStatsInjector()
+	return m.Run()
+}
+
+// startStatsInjector starts stats injection to benchmark results.
+func startStatsInjector() {
+	orgStdout = os.Stdout
+	r, w, _ := os.Pipe()
+	os.Stdout = w
+	nextOutPos = 0
+
+	resetCurBenchStats()
+
+	injectCond = sync.NewCond(&sync.Mutex{})
+	injectDone = make(chan struct{})
+	go func() {
+		defer close(injectDone)
+
+		scanner := bufio.NewScanner(r)
+		scanner.Split(splitLines)
+		for scanner.Scan() {
+			injectStatsIfFinished(scanner.Text())
+		}
+		if err := scanner.Err(); err != nil {
+			panic(err)
+		}
+	}()
+}
+
+// stopStatsInjector stops stats injection and restores os.Stdout.
+func stopStatsInjector() {
+	os.Stdout.Close()
+	<-injectDone
+	injectCond = nil
+	os.Stdout = orgStdout
+}
+
+// splitLines is a split function for a bufio.Scanner that returns each line
+// of text, teeing texts to the original stdout even before each line ends.
+func splitLines(data []byte, eof bool) (advance int, token []byte, err error) {
+	if eof && len(data) == 0 {
+		return 0, nil, nil
+	}
+
+	if i := bytes.IndexByte(data, '\n'); i >= 0 {
+		orgStdout.Write(data[nextOutPos : i+1])
+		nextOutPos = 0
+		return i + 1, data[0:i], nil
+	}
+
+	orgStdout.Write(data[nextOutPos:])
+	nextOutPos = len(data)
+
+	if eof {
+		// This is a final, non-terminated line. Return it.
+		return len(data), data, nil
+	}
+
+	return 0, nil, nil
+}
+
+// injectStatsIfFinished prints out the stats if the current benchmark finishes.
+func injectStatsIfFinished(line string) {
+	injectCond.L.Lock()
+	defer injectCond.L.Unlock()
+
+	// We assume that the benchmark results start with the benchmark name.
+	if curB == nil || !strings.HasPrefix(line, curBenchName) {
+		return
+	}
+
+	if !curB.Failed() {
+		// Output all stats in alphabetical order.
+		names := make([]string, 0, len(curStats))
+		for name := range curStats {
+			names = append(names, name)
+		}
+		sort.Strings(names)
+		for _, name := range names {
+			stats := curStats[name]
+			// The output of stats starts with a header like "Histogram (unit: ms)"
+			// followed by statistical properties and the buckets. Add the stats name
+			// if it is a named stats and indent them as Go testing outputs.
+			lines := strings.Split(stats.String(), "\n")
+			if n := len(lines); n > 0 {
+				if name != "" {
+					name = ": " + name
+				}
+				fmt.Fprintf(orgStdout, "--- %s%s\n", lines[0], name)
+				for _, line := range lines[1 : n-1] {
+					fmt.Fprintf(orgStdout, "\t%s\n", line)
+				}
+			}
+		}
+	}
+
+	resetCurBenchStats()
+	injectCond.Signal()
+}
+
+// resetCurBenchStats resets the current benchmark stats.
+func resetCurBenchStats() {
+	curB = nil
+	curBenchName = ""
+	curStats = make(map[string]*Stats)
+}
diff --git a/lib/testutil/benchmark/util_test.go b/lib/testutil/benchmark/util_test.go
new file mode 100644
index 0000000..bc10242
--- /dev/null
+++ b/lib/testutil/benchmark/util_test.go
@@ -0,0 +1,73 @@
+package benchmark
+
+import (
+	"bytes"
+	"fmt"
+	"io"
+	"os"
+	"regexp"
+	"strings"
+	"testing"
+	"time"
+)
+
+func BenchmarkTest(b *testing.B) {
+	stats := AddStats(b, 0)
+	for i := 1; i <= b.N; i++ {
+		time.Sleep(1 * time.Microsecond)
+		stats.Add(time.Duration(i) * time.Microsecond)
+	}
+}
+
+func BenchmarkTestMulti(b *testing.B) {
+	stats1 := AddStatsWithName(b, "S1", 0)
+	stats2 := AddStatsWithName(b, "S2", 0)
+	for i := 1; i <= b.N; i++ {
+		time.Sleep(1 * time.Microsecond)
+		stats1.Add(time.Duration(i) * time.Microsecond)
+		stats2.Add(time.Duration(i) * time.Millisecond)
+	}
+}
+
+func TestStatsInjection(t *testing.T) {
+	stdout := os.Stdout
+	r, w, _ := os.Pipe()
+	os.Stdout = w
+
+	outC := make(chan string)
+	go func() {
+		b := new(bytes.Buffer)
+		io.Copy(b, r)
+		r.Close()
+		outC <- b.String()
+	}()
+
+	startStatsInjector()
+
+	fmt.Printf("%s\t", "BenchmarkTest")
+	result := testing.Benchmark(BenchmarkTest)
+	fmt.Println(result.String())
+
+	fmt.Printf("%s\t", "BenchmarkTestMulti")
+	result = testing.Benchmark(BenchmarkTestMulti)
+	fmt.Println(result.String())
+
+	stopStatsInjector()
+
+	w.Close()
+	os.Stdout = stdout
+	out := <-outC
+
+	if strings.Count(out, "Histogram") != 3 {
+		t.Errorf("unexpected stats output:\n%s", out)
+	}
+	if matched, _ := regexp.MatchString("Histogram.*\\)\n", out); !matched {
+		t.Errorf("unnamed stats not found:\n%s", out)
+	}
+	if matched, _ := regexp.MatchString("Histogram.*\\): S1\n", out); !matched {
+		t.Errorf("stats S1 not found:\n%s", out)
+	}
+	if matched, _ := regexp.MatchString("Histogram.*\\): S2\n", out); !matched {
+		t.Errorf("stats S2 not found:\n%s", out)
+	}
+}
diff --git a/runtimes/google/ipc/benchmark/README.txt b/runtimes/google/ipc/benchmark/README.txt
new file mode 100644
index 0000000..f3fa1fc
--- /dev/null
+++ b/runtimes/google/ipc/benchmark/README.txt
@@ -0,0 +1,129 @@
+This directory contains code uses to measure the performance of the Vanadium IPC
+stack.
+
+================================================================================
+
+The ipc_test.go file uses GO's testing package to run benchmarks. Each
+benchmark involves one server and one client. The server has two very simple
+methods that echo the data received from the client back to the client.
+
+client ---- Echo(payload) ----> server
+client <--- return payload ---- server
+
+There are two versions of the Echo method:
+ - Echo(payload []byte) ([]byte], error)
+ - EchoStream() <[]byte,[]byte> error
+
+The first benchmarks use the non-streaming version of Echo with a varying
+payload size. The second benchmarks use the streaming version with varying
+number of chunks and payload sizes. The third one is for measuring the
+performance with multiple clients hosted in the same process.
+
+This test creates a VC before the benchmark begins. So, the VC creation
+overhead is excluded.
+
+$ v23 go test -bench=. -timeout=1h -cpu=1 -benchtime=5s \
+  v.io/core/veyron/runtimes/google/ipc/benchmark
+PASS
+Benchmark____1B	    1000	   8301357 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 7  Max: 17  Avg: 7.89
+	------------------------------------------------------------
+	[  7,   8)   505   50.5%   50.5%  #####
+	[  8,   9)   389   38.9%   89.4%  ####
+	[  9,  10)    38    3.8%   93.2%  
+	[ 10,  11)    12    1.2%   94.4%  
+	[ 11,  12)     4    0.4%   94.8%  
+	[ 12,  14)    19    1.9%   96.7%  
+	[ 14,  16)    23    2.3%   99.0%  
+	[ 16,  18)    10    1.0%  100.0%  
+	[ 18,  21)     0    0.0%  100.0%  
+	[ 21,  24)     0    0.0%  100.0%  
+	[ 24, inf)     0    0.0%  100.0%  
+Benchmark___10B	    1000	   8587341 ns/op	   0.00 MB/s
+...
+
+RESULTS.txt has the full benchmark results.
+
+================================================================================
+
+bmserver/main.go and bmclient/main.go are simple command-line tools to run the
+benchmark server and client as separate processes. Unlike the benchmarks above,
+this test includes the startup cost of name resolution, creating the VC, etc. in
+the first RPC.
+
+$ v23 go run bmserver/main.go \
+  -veyron.tcp.address=localhost:8888 -acl='{"In":{"...":"R"}}'
+
+(In a different shell)
+$ v23 go run bmclient/main.go \
+  -server=/localhost:8888 -iterations=100 -chunk_count=0 -payload_size=10
+iterations: 100  chunk_count: 0  payload_size: 10
+elapsed time: 1.369034277s
+Histogram (unit: ms)
+Count: 100  Min: 7  Max: 94  Avg: 13.17
+------------------------------------------------------------
+[  7,   8)    1    1.0%    1.0%  
+[  8,   9)    4    4.0%    5.0%  
+[  9,  10)   17   17.0%   22.0%  ##
+[ 10,  12)   24   24.0%   46.0%  ##
+[ 12,  15)   24   24.0%   70.0%  ##
+[ 15,  19)   28   28.0%   98.0%  ###
+[ 19,  24)    1    1.0%   99.0%  
+[ 24,  32)    0    0.0%   99.0%  
+[ 32,  42)    0    0.0%   99.0%  
+[ 42,  56)    0    0.0%   99.0%  
+[ 56,  75)    0    0.0%   99.0%  
+[ 75, 101)    1    1.0%  100.0%  
+[101, 136)    0    0.0%  100.0%  
+[136, 183)    0    0.0%  100.0%  
+[183, 247)    0    0.0%  100.0%  
+[247, 334)    0    0.0%  100.0%  
+[334, inf)    0    0.0%  100.0%  
+
+
+On a Raspberry Pi, everything is much slower. The same tests show the following
+results:
+
+$ ./benchmarks.test -test.bench=. -test.cpu=1 -test.benchtime=5s 2>/dev/null
+PASS
+Benchmark____1B             500          21316148 ns/op
+Benchmark___10B             500          23304638 ns/op
+Benchmark__100B             500          21860446 ns/op
+Benchmark___1KB             500          24000346 ns/op
+Benchmark__10KB             200          37530575 ns/op
+Benchmark_100KB             100         136243310 ns/op
+Benchmark_N_RPCs____1_chunk_____1B           500          19957506 ns/op
+Benchmark_N_RPCs____1_chunk____10B           500          22868392 ns/op
+Benchmark_N_RPCs____1_chunk___100B           500          19635412 ns/op
+Benchmark_N_RPCs____1_chunk____1KB           500          22572190 ns/op
+Benchmark_N_RPCs____1_chunk___10KB           500          37570948 ns/op
+Benchmark_N_RPCs___10_chunks___1KB           100          51670740 ns/op
+Benchmark_N_RPCs__100_chunks___1KB            50         364938740 ns/op
+Benchmark_N_RPCs_1000_chunks___1KB             2        3586374500 ns/op
+Benchmark_1_RPC_N_chunks_____1B    10000           1034042 ns/op
+Benchmark_1_RPC_N_chunks____10B     5000           1894875 ns/op
+Benchmark_1_RPC_N_chunks___100B     5000           2857289 ns/op
+Benchmark_1_RPC_N_chunks____1KB     5000           6465839 ns/op
+Benchmark_1_RPC_N_chunks___10KB      100          80019430 ns/op
+Benchmark_1_RPC_N_chunks__100KB Killed
+
+The simple 1 KB RPCs take an average of 24 ms. The streaming equivalent takes
+about 22 ms, and streaming many 1 KB chunks takes about 6.5 ms per chunk.
+
+
+$ ./bmserver --address=localhost:8888 --acl='{"...":"A"}'
+
+$ ./bmclient --server=/localhost:8888 --count=10 --payload_size=1000
+CallEcho 0 2573406000
+CallEcho 1 44669000
+CallEcho 2 54442000
+CallEcho 3 33934000
+CallEcho 4 47985000
+CallEcho 5 61324000
+CallEcho 6 51654000
+CallEcho 7 47043000
+CallEcho 8 44995000
+CallEcho 9 53166000
+
+On the pi, the first RPC takes ~2.5 sec to execute.
diff --git a/runtimes/google/ipc/benchmark/RESULTS.txt b/runtimes/google/ipc/benchmark/RESULTS.txt
new file mode 100644
index 0000000..b884698
--- /dev/null
+++ b/runtimes/google/ipc/benchmark/RESULTS.txt
@@ -0,0 +1,1532 @@
+* 'Benchmark___NNB' shows the average time to execute a simple Echo RPC with a payload
+  of NN bytes.
+* 'Benchmark___CC_chunk____NNB' shows the average time to execute a streaming RPC with
+  a payload of CC chunks of NN bytes.
+* 'Benchmark__per_chunk___NNB' shows the average time to send one chunk of NN bytes.
+* 'Benchmark___NNB_mux___CC_chunks___MMB' shows the average time to execute a simple
+  Echo RPC with a payload of NN bytes while streaming payloads of CC chunks of MM bytes
+  continuously in the same process.
+
+================================================================================
+Date: 01/06/2015
+Platform: Intel(R) Xeon(R) CPU E5-2689 0 @ 2.60GHz,  66114888KB Memory
+
+Benchmark____1B	    2000	   5135719 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 4  Max: 6  Avg: 4.50
+	------------------------------------------------------------
+	[  4,   5)  1077   53.9%   53.9%  #####
+	[  5,   6)   843   42.2%   96.0%  ####
+	[  6, inf)    80    4.0%  100.0%  
+Benchmark____1B-2	    2000	   4968273 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 4  Max: 6  Avg: 4.32
+	------------------------------------------------------------
+	[  4,   5)  1364   68.2%   68.2%  #######
+	[  5,   6)   628   31.4%   99.6%  ###
+	[  6, inf)     8    0.4%  100.0%  
+Benchmark___10B	    2000	   5207706 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 4  Max: 7  Avg: 4.58
+	------------------------------------------------------------
+	[  4,   5)  1380   69.0%   69.0%  #######
+	[  5,   6)   137    6.9%   75.9%  #
+	[  6,   7)   424   21.2%   97.1%  ##
+	[  7, inf)    59    3.0%  100.0%  
+Benchmark___10B-2	    2000	   5012485 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 4  Max: 7  Avg: 4.35
+	------------------------------------------------------------
+	[  4,   5)  1541   77.1%   77.1%  ########
+	[  5,   6)   221   11.1%   88.1%  #
+	[  6,   7)   236   11.8%   99.9%  #
+	[  7, inf)     2    0.1%  100.0%  
+Benchmark__100B	    2000	   5313342 ns/op	   0.04 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 4  Max: 10  Avg: 4.62
+	------------------------------------------------------------
+	[  4,   5)  1505   75.2%   75.2%  ########
+	[  5,   6)   122    6.1%   81.4%  #
+	[  6,   7)    56    2.8%   84.2%  
+	[  7,   8)   259   13.0%   97.1%  #
+	[  8,   9)    57    2.9%  100.0%  
+	[  9,  10)     0    0.0%  100.0%  
+	[ 10, inf)     1    0.1%  100.0%  
+Benchmark__100B-2	    2000	   4997534 ns/op	   0.04 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 4  Max: 7  Avg: 4.34
+	------------------------------------------------------------
+	[  4,   5)  1649   82.5%   82.5%  ########
+	[  5,   6)    18    0.9%   83.4%  
+	[  6,   7)   332   16.6%  100.0%  ##
+	[  7, inf)     1    0.1%  100.0%  
+Benchmark___1KB	    2000	   5247848 ns/op	   0.38 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 4  Max: 9  Avg: 4.62
+	------------------------------------------------------------
+	[  4,   5)  1626   81.3%   81.3%  ########
+	[  5,   6)    67    3.4%   84.7%  
+	[  6,   7)    12    0.6%   85.2%  
+	[  7,   8)    64    3.2%   88.5%  
+	[  8,   9)   196    9.8%   98.2%  #
+	[  9, inf)    35    1.8%  100.0%  
+Benchmark___1KB-2	    2000	   4925061 ns/op	   0.41 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 4  Max: 7  Avg: 4.31
+	------------------------------------------------------------
+	[  4,   5)  1720   86.0%   86.0%  #########
+	[  5,   6)    12    0.6%   86.6%  
+	[  6,   7)   198    9.9%   96.5%  #
+	[  7, inf)    70    3.5%  100.0%  
+Benchmark__10KB	    2000	   5498704 ns/op	   3.64 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 4  Max: 11  Avg: 4.79
+	------------------------------------------------------------
+	[  4,   5)  1577   78.9%   78.9%  ########
+	[  5,   6)    94    4.7%   83.6%  
+	[  6,   7)    47    2.4%   85.9%  
+	[  7,   8)     0    0.0%   85.9%  
+	[  8,   9)    89    4.5%   90.4%  
+	[  9,  10)   123    6.2%   96.5%  #
+	[ 10,  12)    70    3.5%  100.0%  
+	[ 12, inf)     0    0.0%  100.0%  
+Benchmark__10KB-2	    2000	   5046850 ns/op	   3.96 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 4  Max: 9  Avg: 4.42
+	------------------------------------------------------------
+	[  4,   5)  1689   84.5%   84.5%  ########
+	[  5,   6)    50    2.5%   87.0%  
+	[  6,   7)     0    0.0%   87.0%  
+	[  7,   8)   251   12.6%   99.5%  #
+	[  8,   9)     7    0.4%   99.9%  
+	[  9, inf)     3    0.2%  100.0%  
+Benchmark_100KB	    1000	   7995692 ns/op	  25.01 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 6  Max: 13  Avg: 7.50
+	------------------------------------------------------------
+	[  6,   7)   685   68.5%   68.5%  #######
+	[  7,   8)    55    5.5%   74.0%  #
+	[  8,   9)    17    1.7%   75.7%  
+	[  9,  10)     0    0.0%   75.7%  
+	[ 10,  11)     0    0.0%   75.7%  
+	[ 11,  12)    63    6.3%   82.0%  #
+	[ 12,  14)   180   18.0%  100.0%  ##
+	[ 14, inf)     0    0.0%  100.0%  
+Benchmark_100KB-2	    1000	   6064046 ns/op	  32.98 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 5  Max: 9  Avg: 5.77
+	------------------------------------------------------------
+	[  5,   6)   762   76.2%   76.2%  ########
+	[  6,   7)     3    0.3%   76.5%  
+	[  7,   8)     0    0.0%   76.5%  
+	[  8,   9)   173   17.3%   93.8%  ##
+	[  9, inf)    62    6.2%  100.0%  #
+
+Benchmark____1_chunk_____1B	    2000	   5445727 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 4  Max: 7  Avg: 4.87
+	------------------------------------------------------------
+	[  4,   5)   664   33.2%   33.2%  ###
+	[  5,   6)   940   47.0%   80.2%  #####
+	[  6,   7)   395   19.8%  100.0%  ##
+	[  7, inf)     1    0.1%  100.0%  
+Benchmark____1_chunk_____1B-2	    2000	   5178446 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 4  Max: 6  Avg: 4.46
+	------------------------------------------------------------
+	[  4,   5)  1130   56.5%   56.5%  ######
+	[  5,   6)   825   41.2%   97.8%  ####
+	[  6, inf)    45    2.2%  100.0%  
+Benchmark____1_chunk____10B	    2000	   5545419 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 4  Max: 7  Avg: 4.89
+	------------------------------------------------------------
+	[  4,   5)   985   49.2%   49.2%  #####
+	[  5,   6)   473   23.7%   72.9%  ##
+	[  6,   7)   321   16.1%   89.0%  ##
+	[  7, inf)   221   11.1%  100.0%  #
+Benchmark____1_chunk____10B-2	    2000	   5217440 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 4  Max: 6  Avg: 4.55
+	------------------------------------------------------------
+	[  4,   5)  1311   65.5%   65.5%  #######
+	[  5,   6)   279   14.0%   79.5%  #
+	[  6, inf)   410   20.5%  100.0%  ##
+Benchmark____1_chunk___100B	    2000	   5607749 ns/op	   0.04 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 4  Max: 9  Avg: 5.00
+	------------------------------------------------------------
+	[  4,   5)   981   49.1%   49.1%  #####
+	[  5,   6)   614   30.7%   79.8%  ###
+	[  6,   7)    10    0.5%   80.2%  
+	[  7,   8)   216   10.8%   91.1%  #
+	[  8,   9)   178    8.9%  100.0%  #
+	[  9, inf)     1    0.1%  100.0%  
+Benchmark____1_chunk___100B-2	    2000	   5221803 ns/op	   0.04 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 4  Max: 7  Avg: 4.48
+	------------------------------------------------------------
+	[  4,   5)  1421   71.0%   71.0%  #######
+	[  5,   6)   223   11.2%   82.2%  #
+	[  6,   7)   329   16.4%   98.7%  ##
+	[  7, inf)    27    1.4%  100.0%  
+Benchmark____1_chunk____1KB	    2000	   5499778 ns/op	   0.36 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 4  Max: 10  Avg: 4.74
+	------------------------------------------------------------
+	[  4,   5)  1456   72.8%   72.8%  #######
+	[  5,   6)   214   10.7%   83.5%  #
+	[  6,   7)    12    0.6%   84.1%  
+	[  7,   8)    72    3.6%   87.7%  
+	[  8,   9)   205   10.2%   98.0%  #
+	[  9,  10)    40    2.0%  100.0%  
+	[ 10, inf)     1    0.1%  100.0%  
+Benchmark____1_chunk____1KB-2	    2000	   5131389 ns/op	   0.39 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 4  Max: 7  Avg: 4.41
+	------------------------------------------------------------
+	[  4,   5)  1621   81.1%   81.1%  ########
+	[  5,   6)    89    4.5%   85.5%  
+	[  6,   7)   149    7.5%   93.0%  #
+	[  7, inf)   141    7.1%  100.0%  #
+Benchmark____1_chunk___10KB	    2000	   5747560 ns/op	   3.48 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 4  Max: 11  Avg: 5.12
+	------------------------------------------------------------
+	[  4,   5)  1023   51.2%   51.2%  #####
+	[  5,   6)   598   29.9%   81.1%  ###
+	[  6,   7)    78    3.9%   85.0%  
+	[  7,   8)     1    0.1%   85.0%  
+	[  8,   9)    72    3.6%   88.6%  
+	[  9,  10)   164    8.2%   96.8%  #
+	[ 10,  12)    64    3.2%  100.0%  
+	[ 12, inf)     0    0.0%  100.0%  
+Benchmark____1_chunk___10KB-2	    2000	   5240887 ns/op	   3.82 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 4  Max: 10  Avg: 4.55
+	------------------------------------------------------------
+	[  4,   5)  1515   75.8%   75.8%  ########
+	[  5,   6)   208   10.4%   86.2%  #
+	[  6,   7)     0    0.0%   86.2%  
+	[  7,   8)   231   11.6%   97.7%  #
+	[  8,   9)    29    1.5%   99.2%  
+	[  9,  10)    16    0.8%  100.0%  
+	[ 10, inf)     1    0.1%  100.0%  
+Benchmark____1_chunk__100KB	    1000	   8096470 ns/op	  24.70 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 6  Max: 13  Avg: 7.54
+	------------------------------------------------------------
+	[  6,   7)   687   68.7%   68.7%  #######
+	[  7,   8)    64    6.4%   75.1%  #
+	[  8,   9)     1    0.1%   75.2%  
+	[  9,  10)     0    0.0%   75.2%  
+	[ 10,  11)     0    0.0%   75.2%  
+	[ 11,  12)    24    2.4%   77.6%  
+	[ 12,  14)   224   22.4%  100.0%  ##
+	[ 14, inf)     0    0.0%  100.0%  
+Benchmark____1_chunk__100KB-2	    1000	   6401830 ns/op	  31.24 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 5  Max: 11  Avg: 5.91
+	------------------------------------------------------------
+	[  5,   6)   748   74.8%   74.8%  #######
+	[  6,   7)    14    1.4%   76.2%  
+	[  7,   8)     1    0.1%   76.3%  
+	[  8,   9)   106   10.6%   86.9%  #
+	[  9,  10)    81    8.1%   95.0%  #
+	[ 10,  11)    46    4.6%   99.6%  
+	[ 11, inf)     4    0.4%  100.0%  
+Benchmark___10_chunk_____1B	    1000	   7091901 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 5  Max: 14  Avg: 6.78
+	------------------------------------------------------------
+	[  5,   6)    28    2.8%    2.8%  
+	[  6,   7)   819   81.9%   84.7%  ########
+	[  7,   8)    10    1.0%   85.7%  
+	[  8,   9)    25    2.5%   88.2%  
+	[  9,  10)     0    0.0%   88.2%  
+	[ 10,  12)    30    3.0%   91.2%  
+	[ 12,  14)    86    8.6%   99.8%  #
+	[ 14,  16)     2    0.2%  100.0%  
+	[ 16,  19)     0    0.0%  100.0%  
+	[ 19, inf)     0    0.0%  100.0%  
+Benchmark___10_chunk_____1B-2	    1000	   6297751 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 5  Max: 11  Avg: 5.68
+	------------------------------------------------------------
+	[  5,   6)   759   75.9%   75.9%  ########
+	[  6,   7)   118   11.8%   87.7%  #
+	[  7,   8)     0    0.0%   87.7%  
+	[  8,   9)    14    1.4%   89.1%  
+	[  9,  10)    40    4.0%   93.1%  
+	[ 10,  11)    51    5.1%   98.2%  #
+	[ 11, inf)    18    1.8%  100.0%  
+Benchmark___10_chunk____10B	    1000	   7358008 ns/op	   0.03 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 6  Max: 16  Avg: 6.88
+	------------------------------------------------------------
+	[  6,   7)   845   84.5%   84.5%  ########
+	[  7,   8)     9    0.9%   85.4%  
+	[  8,   9)    28    2.8%   88.2%  
+	[  9,  10)     0    0.0%   88.2%  
+	[ 10,  11)     0    0.0%   88.2%  
+	[ 11,  13)    29    2.9%   91.1%  
+	[ 13,  15)    86    8.6%   99.7%  #
+	[ 15,  17)     3    0.3%  100.0%  
+	[ 17,  20)     0    0.0%  100.0%  
+	[ 20,  23)     0    0.0%  100.0%  
+	[ 23, inf)     0    0.0%  100.0%  
+Benchmark___10_chunk____10B-2	    1000	   6307487 ns/op	   0.03 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 5  Max: 12  Avg: 5.67
+	------------------------------------------------------------
+	[  5,   6)   779   77.9%   77.9%  ########
+	[  6,   7)   103   10.3%   88.2%  #
+	[  7,   8)     2    0.2%   88.4%  
+	[  8,   9)     9    0.9%   89.3%  
+	[  9,  10)    40    4.0%   93.3%  
+	[ 10,  11)    32    3.2%   96.5%  
+	[ 11,  13)    35    3.5%  100.0%  
+	[ 13, inf)     0    0.0%  100.0%  
+Benchmark___10_chunk___100B	    1000	   7583639 ns/op	   0.26 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 6  Max: 16  Avg: 6.96
+	------------------------------------------------------------
+	[  6,   7)   833   83.3%   83.3%  ########
+	[  7,   8)    27    2.7%   86.0%  
+	[  8,   9)    22    2.2%   88.2%  
+	[  9,  10)     5    0.5%   88.7%  
+	[ 10,  11)     0    0.0%   88.7%  
+	[ 11,  13)    26    2.6%   91.3%  
+	[ 13,  15)    68    6.8%   98.1%  #
+	[ 15,  17)    19    1.9%  100.0%  
+	[ 17,  20)     0    0.0%  100.0%  
+	[ 20,  23)     0    0.0%  100.0%  
+	[ 23, inf)     0    0.0%  100.0%  
+Benchmark___10_chunk___100B-2	    1000	   6213319 ns/op	   0.32 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 5  Max: 11  Avg: 5.56
+	------------------------------------------------------------
+	[  5,   6)   831   83.1%   83.1%  ########
+	[  6,   7)    58    5.8%   88.9%  #
+	[  7,   8)     0    0.0%   88.9%  
+	[  8,   9)     0    0.0%   88.9%  
+	[  9,  10)    58    5.8%   94.7%  #
+	[ 10,  11)    52    5.2%   99.9%  #
+	[ 11, inf)     1    0.1%  100.0%  
+Benchmark___10_chunk____1KB	    1000	   7839146 ns/op	   2.55 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 6  Max: 17  Avg: 7.15
+	------------------------------------------------------------
+	[  6,   7)   793   79.3%   79.3%  ########
+	[  7,   8)    60    6.0%   85.3%  #
+	[  8,   9)     4    0.4%   85.7%  
+	[  9,  10)    26    2.6%   88.3%  
+	[ 10,  11)     1    0.1%   88.4%  
+	[ 11,  13)     0    0.0%   88.4%  
+	[ 13,  15)    31    3.1%   91.5%  
+	[ 15,  18)    85    8.5%  100.0%  #
+	[ 18,  21)     0    0.0%  100.0%  
+	[ 21,  25)     0    0.0%  100.0%  
+	[ 25,  29)     0    0.0%  100.0%  
+	[ 29, inf)     0    0.0%  100.0%  
+Benchmark___10_chunk____1KB-2	    1000	   6437679 ns/op	   3.11 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 5  Max: 13  Avg: 5.79
+	------------------------------------------------------------
+	[  5,   6)   757   75.7%   75.7%  ########
+	[  6,   7)   129   12.9%   88.6%  #
+	[  7,   8)     1    0.1%   88.7%  
+	[  8,   9)     0    0.0%   88.7%  
+	[  9,  10)    17    1.7%   90.4%  
+	[ 10,  12)    51    5.1%   95.5%  #
+	[ 12,  14)    45    4.5%  100.0%  
+	[ 14,  16)     0    0.0%  100.0%  
+	[ 16, inf)     0    0.0%  100.0%  
+Benchmark___10_chunk___10KB	    1000	  10124684 ns/op	  19.75 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 8  Max: 20  Avg: 9.76
+	------------------------------------------------------------
+	[  8,   9)   746   74.6%   74.6%  #######
+	[  9,  10)     6    0.6%   75.2%  
+	[ 10,  11)    53    5.3%   80.5%  #
+	[ 11,  12)     3    0.3%   80.8%  
+	[ 12,  13)     0    0.0%   80.8%  
+	[ 13,  15)     0    0.0%   80.8%  
+	[ 15,  17)    56    5.6%   86.4%  #
+	[ 17,  20)   135   13.5%   99.9%  #
+	[ 20,  23)     1    0.1%  100.0%  
+	[ 23,  27)     0    0.0%  100.0%  
+	[ 27,  32)     0    0.0%  100.0%  
+	[ 32,  38)     0    0.0%  100.0%  
+	[ 38, inf)     0    0.0%  100.0%  
+Benchmark___10_chunk___10KB-2	    1000	   7345578 ns/op	  27.23 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 5  Max: 14  Avg: 6.95
+	------------------------------------------------------------
+	[  5,   6)   153   15.3%   15.3%  ##
+	[  6,   7)   616   61.6%   76.9%  ######
+	[  7,   8)    43    4.3%   81.2%  
+	[  8,   9)     2    0.2%   81.4%  
+	[  9,  10)     1    0.1%   81.5%  
+	[ 10,  12)    73    7.3%   88.8%  #
+	[ 12,  14)   104   10.4%   99.2%  #
+	[ 14,  16)     8    0.8%  100.0%  
+	[ 16,  19)     0    0.0%  100.0%  
+	[ 19, inf)     0    0.0%  100.0%  
+Benchmark___10_chunk__100KB	     200	  31538364 ns/op	  63.41 MB/s
+--- Histogram (unit: ms)
+	Count: 200  Min: 24  Max: 37  Avg: 31.07
+	------------------------------------------------------------
+	[ 24,  25)    5    2.5%    2.5%  
+	[ 25,  26)   60   30.0%   32.5%  ###
+	[ 26,  27)    2    1.0%   33.5%  
+	[ 27,  28)    0    0.0%   33.5%  
+	[ 28,  29)    0    0.0%   33.5%  
+	[ 29,  31)    0    0.0%   33.5%  
+	[ 31,  33)    0    0.0%   33.5%  
+	[ 33,  36)  129   64.5%   98.0%  ######
+	[ 36,  39)    4    2.0%  100.0%  
+	[ 39,  43)    0    0.0%  100.0%  
+	[ 43,  48)    0    0.0%  100.0%  
+	[ 48,  54)    0    0.0%  100.0%  
+	[ 54,  61)    0    0.0%  100.0%  
+	[ 61, inf)    0    0.0%  100.0%  
+Benchmark___10_chunk__100KB-2	     500	  19099352 ns/op	 104.72 MB/s
+--- Histogram (unit: ms)
+	Count: 500  Min: 14  Max: 27  Avg: 18.58
+	------------------------------------------------------------
+	[ 14,  15)   53   10.6%   10.6%  #
+	[ 15,  16)  109   21.8%   32.4%  ##
+	[ 16,  17)   15    3.0%   35.4%  
+	[ 17,  18)    0    0.0%   35.4%  
+	[ 18,  19)    2    0.4%   35.8%  
+	[ 19,  21)  161   32.2%   68.0%  ###
+	[ 21,  23)  141   28.2%   96.2%  ###
+	[ 23,  26)   18    3.6%   99.8%  
+	[ 26,  29)    1    0.2%  100.0%  
+	[ 29,  33)    0    0.0%  100.0%  
+	[ 33,  38)    0    0.0%  100.0%  
+	[ 38,  44)    0    0.0%  100.0%  
+	[ 44,  51)    0    0.0%  100.0%  
+	[ 51, inf)    0    0.0%  100.0%  
+Benchmark__100_chunk_____1B	     500	  19824819 ns/op	   0.01 MB/s
+--- Histogram (unit: ms)
+	Count: 500  Min: 16  Max: 34  Avg: 19.44
+	------------------------------------------------------------
+	[ 16,  17)  272   54.4%   54.4%  #####
+	[ 17,  18)   15    3.0%   57.4%  
+	[ 18,  19)    2    0.4%   57.8%  
+	[ 19,  20)   38    7.6%   65.4%  #
+	[ 20,  22)   33    6.6%   72.0%  #
+	[ 22,  24)   23    4.6%   76.6%  
+	[ 24,  27)   41    8.2%   84.8%  #
+	[ 27,  30)   64   12.8%   97.6%  #
+	[ 30,  34)   11    2.2%   99.8%  
+	[ 34,  39)    1    0.2%  100.0%  
+	[ 39,  45)    0    0.0%  100.0%  
+	[ 45,  53)    0    0.0%  100.0%  
+	[ 53,  63)    0    0.0%  100.0%  
+	[ 63,  75)    0    0.0%  100.0%  
+	[ 75,  89)    0    0.0%  100.0%  
+	[ 89, 106)    0    0.0%  100.0%  
+	[106, inf)    0    0.0%  100.0%  
+Benchmark__100_chunk_____1B-2	     500	  14793583 ns/op	   0.01 MB/s
+--- Histogram (unit: ms)
+	Count: 500  Min: 11  Max: 23  Avg: 14.28
+	------------------------------------------------------------
+	[ 11,  12)   15    3.0%    3.0%  
+	[ 12,  13)  210   42.0%   45.0%  ####
+	[ 13,  14)  107   21.4%   66.4%  ##
+	[ 14,  15)   19    3.8%   70.2%  
+	[ 15,  16)    1    0.2%   70.4%  
+	[ 16,  18)   23    4.6%   75.0%  
+	[ 18,  20)   91   18.2%   93.2%  ##
+	[ 20,  23)   31    6.2%   99.4%  #
+	[ 23,  26)    3    0.6%  100.0%  
+	[ 26,  30)    0    0.0%  100.0%  
+	[ 30,  35)    0    0.0%  100.0%  
+	[ 35,  41)    0    0.0%  100.0%  
+	[ 41, inf)    0    0.0%  100.0%  
+Benchmark__100_chunk____10B	     300	  24818102 ns/op	   0.08 MB/s
+--- Histogram (unit: ms)
+	Count: 300  Min: 20  Max: 35  Avg: 24.38
+	------------------------------------------------------------
+	[ 20,  21)    7    2.3%    2.3%  
+	[ 21,  22)  145   48.3%   50.7%  #####
+	[ 22,  23)   29    9.7%   60.3%  #
+	[ 23,  24)    4    1.3%   61.7%  
+	[ 24,  26)   25    8.3%   70.0%  #
+	[ 26,  28)    4    1.3%   71.3%  
+	[ 28,  30)   24    8.0%   79.3%  #
+	[ 30,  33)   43   14.3%   93.7%  #
+	[ 33,  37)   19    6.3%  100.0%  #
+	[ 37,  42)    0    0.0%  100.0%  
+	[ 42,  48)    0    0.0%  100.0%  
+	[ 48,  55)    0    0.0%  100.0%  
+	[ 55,  63)    0    0.0%  100.0%  
+	[ 63,  73)    0    0.0%  100.0%  
+	[ 73,  85)    0    0.0%  100.0%  
+	[ 85, inf)    0    0.0%  100.0%  
+Benchmark__100_chunk____10B-2	     500	  15081537 ns/op	   0.13 MB/s
+--- Histogram (unit: ms)
+	Count: 500  Min: 11  Max: 25  Avg: 14.57
+	------------------------------------------------------------
+	[ 11,  12)    1    0.2%    0.2%  
+	[ 12,  13)  182   36.4%   36.6%  ####
+	[ 13,  14)  143   28.6%   65.2%  ###
+	[ 14,  15)   23    4.6%   69.8%  
+	[ 15,  17)    7    1.4%   71.2%  
+	[ 17,  19)   51   10.2%   81.4%  #
+	[ 19,  21)   55   11.0%   92.4%  #
+	[ 21,  24)   34    6.8%   99.2%  #
+	[ 24,  28)    4    0.8%  100.0%  
+	[ 28,  32)    0    0.0%  100.0%  
+	[ 32,  37)    0    0.0%  100.0%  
+	[ 37,  43)    0    0.0%  100.0%  
+	[ 43,  51)    0    0.0%  100.0%  
+	[ 51,  60)    0    0.0%  100.0%  
+	[ 60, inf)    0    0.0%  100.0%  
+Benchmark__100_chunk___100B	     300	  27491526 ns/op	   0.73 MB/s
+--- Histogram (unit: ms)
+	Count: 300  Min: 23  Max: 38  Avg: 26.94
+	------------------------------------------------------------
+	[ 23,  24)  104   34.7%   34.7%  ###
+	[ 24,  25)   67   22.3%   57.0%  ##
+	[ 25,  26)   10    3.3%   60.3%  
+	[ 26,  27)    8    2.7%   63.0%  
+	[ 27,  29)   23    7.7%   70.7%  #
+	[ 29,  31)    0    0.0%   70.7%  
+	[ 31,  33)   22    7.3%   78.0%  #
+	[ 33,  36)   57   19.0%   97.0%  ##
+	[ 36,  40)    9    3.0%  100.0%  
+	[ 40,  45)    0    0.0%  100.0%  
+	[ 45,  51)    0    0.0%  100.0%  
+	[ 51,  58)    0    0.0%  100.0%  
+	[ 58,  66)    0    0.0%  100.0%  
+	[ 66,  76)    0    0.0%  100.0%  
+	[ 76,  88)    0    0.0%  100.0%  
+	[ 88, inf)    0    0.0%  100.0%  
+Benchmark__100_chunk___100B-2	     500	  15897395 ns/op	   1.26 MB/s
+--- Histogram (unit: ms)
+	Count: 500  Min: 12  Max: 24  Avg: 15.40
+	------------------------------------------------------------
+	[ 12,  13)    5    1.0%    1.0%  
+	[ 13,  14)  226   45.2%   46.2%  #####
+	[ 14,  15)  107   21.4%   67.6%  ##
+	[ 15,  16)   16    3.2%   70.8%  
+	[ 16,  17)    0    0.0%   70.8%  
+	[ 17,  19)   12    2.4%   73.2%  
+	[ 19,  21)   92   18.4%   91.6%  ##
+	[ 21,  24)   35    7.0%   98.6%  #
+	[ 24,  27)    7    1.4%  100.0%  
+	[ 27,  31)    0    0.0%  100.0%  
+	[ 31,  36)    0    0.0%  100.0%  
+	[ 36,  42)    0    0.0%  100.0%  
+	[ 42, inf)    0    0.0%  100.0%  
+Benchmark__100_chunk____1KB	     200	  30390593 ns/op	   6.58 MB/s
+--- Histogram (unit: ms)
+	Count: 200  Min: 25  Max: 41  Avg: 29.77
+	------------------------------------------------------------
+	[ 25,  26)   68   34.0%   34.0%  ###
+	[ 26,  27)   26   13.0%   47.0%  #
+	[ 27,  28)    8    4.0%   51.0%  
+	[ 28,  29)    9    4.5%   55.5%  
+	[ 29,  31)   18    9.0%   64.5%  #
+	[ 31,  33)    1    0.5%   65.0%  
+	[ 33,  36)   24   12.0%   77.0%  #
+	[ 36,  39)   39   19.5%   96.5%  ##
+	[ 39,  43)    7    3.5%  100.0%  
+	[ 43,  48)    0    0.0%  100.0%  
+	[ 48,  54)    0    0.0%  100.0%  
+	[ 54,  61)    0    0.0%  100.0%  
+	[ 61,  70)    0    0.0%  100.0%  
+	[ 70,  81)    0    0.0%  100.0%  
+	[ 81,  94)    0    0.0%  100.0%  
+	[ 94, 110)    0    0.0%  100.0%  
+	[110, inf)    0    0.0%  100.0%  
+Benchmark__100_chunk____1KB-2	     500	  17949156 ns/op	  11.14 MB/s
+--- Histogram (unit: ms)
+	Count: 500  Min: 14  Max: 26  Avg: 17.41
+	------------------------------------------------------------
+	[ 14,  15)  120   24.0%   24.0%  ##
+	[ 15,  16)  169   33.8%   57.8%  ###
+	[ 16,  17)   28    5.6%   63.4%  #
+	[ 17,  18)    6    1.2%   64.6%  
+	[ 18,  19)    2    0.4%   65.0%  
+	[ 19,  21)   19    3.8%   68.8%  
+	[ 21,  23)   87   17.4%   86.2%  ##
+	[ 23,  26)   66   13.2%   99.4%  #
+	[ 26,  29)    3    0.6%  100.0%  
+	[ 29,  33)    0    0.0%  100.0%  
+	[ 33,  38)    0    0.0%  100.0%  
+	[ 38,  44)    0    0.0%  100.0%  
+	[ 44, inf)    0    0.0%  100.0%  
+Benchmark__100_chunk___10KB	     100	  51722516 ns/op	  38.67 MB/s
+--- Histogram (unit: ms)
+	Count: 100  Min: 42  Max: 57  Avg: 51.22
+	------------------------------------------------------------
+	[ 42,  43)    1    1.0%    1.0%  
+	[ 43,  44)    0    0.0%    1.0%  
+	[ 44,  45)   14   14.0%   15.0%  #
+	[ 45,  46)    1    1.0%   16.0%  
+	[ 46,  48)    2    2.0%   18.0%  
+	[ 48,  50)    0    0.0%   18.0%  
+	[ 50,  52)   17   17.0%   35.0%  ##
+	[ 52,  55)   58   58.0%   93.0%  ######
+	[ 55,  59)    7    7.0%  100.0%  #
+	[ 59,  64)    0    0.0%  100.0%  
+	[ 64,  70)    0    0.0%  100.0%  
+	[ 70,  77)    0    0.0%  100.0%  
+	[ 77,  85)    0    0.0%  100.0%  
+	[ 85,  95)    0    0.0%  100.0%  
+	[ 95, 107)    0    0.0%  100.0%  
+	[107, inf)    0    0.0%  100.0%  
+Benchmark__100_chunk___10KB-2	     300	  28968863 ns/op	  69.04 MB/s
+--- Histogram (unit: ms)
+	Count: 300  Min: 22  Max: 34  Avg: 28.47
+	------------------------------------------------------------
+	[ 22,  23)   30   10.0%   10.0%  #
+	[ 23,  24)   18    6.0%   16.0%  #
+	[ 24,  25)    6    2.0%   18.0%  
+	[ 25,  26)    0    0.0%   18.0%  
+	[ 26,  27)    0    0.0%   18.0%  
+	[ 27,  29)   63   21.0%   39.0%  ##
+	[ 29,  31)  102   34.0%   73.0%  ###
+	[ 31,  34)   77   25.7%   98.7%  ###
+	[ 34,  37)    4    1.3%  100.0%  
+	[ 37,  41)    0    0.0%  100.0%  
+	[ 41,  46)    0    0.0%  100.0%  
+	[ 46,  52)    0    0.0%  100.0%  
+	[ 52, inf)    0    0.0%  100.0%  
+Benchmark__100_chunk__100KB	      30	 251752470 ns/op	  79.44 MB/s
+--- Histogram (unit: ms)
+	Count: 30  Min: 243  Max: 257  Avg: 251.23
+	------------------------------------------------------------
+	[243, 244)   5   16.7%   16.7%  ##
+	[244, 245)   1    3.3%   20.0%  
+	[245, 246)   4   13.3%   33.3%  #
+	[246, 247)   0    0.0%   33.3%  
+	[247, 249)   0    0.0%   33.3%  
+	[249, 251)   0    0.0%   33.3%  
+	[251, 253)   0    0.0%   33.3%  
+	[253, 256)  14   46.7%   80.0%  #####
+	[256, 260)   6   20.0%  100.0%  ##
+	[260, 264)   0    0.0%  100.0%  
+	[264, 269)   0    0.0%  100.0%  
+	[269, 275)   0    0.0%  100.0%  
+	[275, 283)   0    0.0%  100.0%  
+	[283, 292)   0    0.0%  100.0%  
+	[292, inf)   0    0.0%  100.0%  
+Benchmark__100_chunk__100KB-2	      50	 131868524 ns/op	 151.67 MB/s
+--- Histogram (unit: ms)
+	Count: 50  Min: 127  Max: 137  Avg: 131.44
+	------------------------------------------------------------
+	[127, 128)   3    6.0%    6.0%  #
+	[128, 129)  13   26.0%   32.0%  ###
+	[129, 130)   9   18.0%   50.0%  ##
+	[130, 131)   1    2.0%   52.0%  
+	[131, 132)   1    2.0%   54.0%  
+	[132, 134)   2    4.0%   58.0%  
+	[134, 136)  14   28.0%   86.0%  ###
+	[136, 138)   7   14.0%  100.0%  #
+	[138, 141)   0    0.0%  100.0%  
+	[141, 144)   0    0.0%  100.0%  
+	[144, inf)   0    0.0%  100.0%  
+Benchmark___1K_chunk_____1B	      50	 147894706 ns/op	   0.01 MB/s
+--- Histogram (unit: ms)
+	Count: 50  Min: 123  Max: 195  Avg: 147.42
+	------------------------------------------------------------
+	[123, 124)   1    2.0%    2.0%  
+	[124, 125)   0    0.0%    2.0%  
+	[125, 126)   0    0.0%    2.0%  
+	[126, 128)   0    0.0%    2.0%  
+	[128, 131)   0    0.0%    2.0%  
+	[131, 135)   1    2.0%    4.0%  
+	[135, 140)  20   40.0%   44.0%  ####
+	[140, 147)  19   38.0%   82.0%  ####
+	[147, 156)   1    2.0%   84.0%  
+	[156, 169)   0    0.0%   84.0%  
+	[169, 186)   2    4.0%   88.0%  
+	[186, 209)   6   12.0%  100.0%  #
+	[209, 239)   0    0.0%  100.0%  
+	[239, 279)   0    0.0%  100.0%  
+	[279, 333)   0    0.0%  100.0%  
+	[333, 404)   0    0.0%  100.0%  
+	[404, inf)   0    0.0%  100.0%  
+Benchmark___1K_chunk_____1B-2	     100	 112701633 ns/op	   0.02 MB/s
+--- Histogram (unit: ms)
+	Count: 100  Min: 109  Max: 128  Avg: 112.17
+	------------------------------------------------------------
+	[109, 110)    4    4.0%    4.0%  
+	[110, 111)   17   17.0%   21.0%  ##
+	[111, 112)   31   31.0%   52.0%  ###
+	[112, 113)   16   16.0%   68.0%  ##
+	[113, 115)   21   21.0%   89.0%  ##
+	[115, 117)    4    4.0%   93.0%  
+	[117, 120)    5    5.0%   98.0%  #
+	[120, 123)    1    1.0%   99.0%  
+	[123, 127)    0    0.0%   99.0%  
+	[127, 132)    1    1.0%  100.0%  
+	[132, 139)    0    0.0%  100.0%  
+	[139, 147)    0    0.0%  100.0%  
+	[147, 157)    0    0.0%  100.0%  
+	[157, 169)    0    0.0%  100.0%  
+	[169, 184)    0    0.0%  100.0%  
+	[184, 202)    0    0.0%  100.0%  
+	[202, inf)    0    0.0%  100.0%  
+Benchmark___1K_chunk____10B	      30	 210652536 ns/op	   0.09 MB/s
+--- Histogram (unit: ms)
+	Count: 30  Min: 205  Max: 216  Avg: 210.23
+	------------------------------------------------------------
+	[205, 206)   1    3.3%    3.3%  
+	[206, 207)   3   10.0%   13.3%  #
+	[207, 208)   4   13.3%   26.7%  #
+	[208, 209)   3   10.0%   36.7%  #
+	[209, 210)   0    0.0%   36.7%  
+	[210, 212)   6   20.0%   56.7%  ##
+	[212, 214)  10   33.3%   90.0%  ###
+	[214, 217)   3   10.0%  100.0%  #
+	[217, 220)   0    0.0%  100.0%  
+	[220, 224)   0    0.0%  100.0%  
+	[224, 228)   0    0.0%  100.0%  
+	[228, inf)   0    0.0%  100.0%  
+Benchmark___1K_chunk____10B-2	     100	 121674848 ns/op	   0.16 MB/s
+--- Histogram (unit: ms)
+	Count: 100  Min: 113  Max: 132  Avg: 121.15
+	------------------------------------------------------------
+	[113, 114)    4    4.0%    4.0%  
+	[114, 115)    9    9.0%   13.0%  #
+	[115, 116)    5    5.0%   18.0%  #
+	[116, 117)    3    3.0%   21.0%  
+	[117, 119)    7    7.0%   28.0%  #
+	[119, 121)   14   14.0%   42.0%  #
+	[121, 124)   24   24.0%   66.0%  ##
+	[124, 127)   25   25.0%   91.0%  ###
+	[127, 131)    8    8.0%   99.0%  #
+	[131, 136)    1    1.0%  100.0%  
+	[136, 143)    0    0.0%  100.0%  
+	[143, 151)    0    0.0%  100.0%  
+	[151, 161)    0    0.0%  100.0%  
+	[161, 173)    0    0.0%  100.0%  
+	[173, 188)    0    0.0%  100.0%  
+	[188, 206)    0    0.0%  100.0%  
+	[206, inf)    0    0.0%  100.0%  
+Benchmark___1K_chunk___100B	      30	 238543410 ns/op	   0.84 MB/s
+--- Histogram (unit: ms)
+	Count: 30  Min: 230  Max: 250  Avg: 238.03
+	------------------------------------------------------------
+	[230, 231)   3   10.0%   10.0%  #
+	[231, 232)   0    0.0%   10.0%  
+	[232, 233)   1    3.3%   13.3%  
+	[233, 234)   2    6.7%   20.0%  #
+	[234, 236)   5   16.7%   36.7%  ##
+	[236, 238)   4   13.3%   50.0%  #
+	[238, 241)   5   16.7%   66.7%  ##
+	[241, 245)   7   23.3%   90.0%  ##
+	[245, 249)   2    6.7%   96.7%  #
+	[249, 255)   1    3.3%  100.0%  
+	[255, 262)   0    0.0%  100.0%  
+	[262, 270)   0    0.0%  100.0%  
+	[270, 280)   0    0.0%  100.0%  
+	[280, 293)   0    0.0%  100.0%  
+	[293, 309)   0    0.0%  100.0%  
+	[309, 328)   0    0.0%  100.0%  
+	[328, inf)   0    0.0%  100.0%  
+Benchmark___1K_chunk___100B-2	      50	 138412318 ns/op	   1.44 MB/s
+--- Histogram (unit: ms)
+	Count: 50  Min: 126  Max: 149  Avg: 137.94
+	------------------------------------------------------------
+	[126, 127)   1    2.0%    2.0%  
+	[127, 128)   0    0.0%    2.0%  
+	[128, 129)   0    0.0%    2.0%  
+	[129, 130)   0    0.0%    2.0%  
+	[130, 132)   3    6.0%    8.0%  #
+	[132, 134)   6   12.0%   20.0%  #
+	[134, 137)  11   22.0%   42.0%  ##
+	[137, 141)  12   24.0%   66.0%  ##
+	[141, 146)  14   28.0%   94.0%  ###
+	[146, 152)   3    6.0%  100.0%  #
+	[152, 160)   0    0.0%  100.0%  
+	[160, 169)   0    0.0%  100.0%  
+	[169, 181)   0    0.0%  100.0%  
+	[181, 196)   0    0.0%  100.0%  
+	[196, 214)   0    0.0%  100.0%  
+	[214, 236)   0    0.0%  100.0%  
+	[236, inf)   0    0.0%  100.0%  
+Benchmark___1K_chunk____1KB	      30	 276508870 ns/op	   7.23 MB/s
+--- Histogram (unit: ms)
+	Count: 30  Min: 264  Max: 299  Avg: 275.97
+	------------------------------------------------------------
+	[264, 265)   1    3.3%    3.3%  
+	[265, 266)   0    0.0%    3.3%  
+	[266, 267)   1    3.3%    6.7%  
+	[267, 269)   3   10.0%   16.7%  #
+	[269, 271)   5   16.7%   33.3%  ##
+	[271, 274)   7   23.3%   56.7%  ##
+	[274, 278)   2    6.7%   63.3%  #
+	[278, 283)   7   23.3%   86.7%  ##
+	[283, 289)   1    3.3%   90.0%  
+	[289, 297)   1    3.3%   93.3%  
+	[297, 307)   2    6.7%  100.0%  #
+	[307, 320)   0    0.0%  100.0%  
+	[320, 337)   0    0.0%  100.0%  
+	[337, 358)   0    0.0%  100.0%  
+	[358, 385)   0    0.0%  100.0%  
+	[385, 419)   0    0.0%  100.0%  
+	[419, inf)   0    0.0%  100.0%  
+Benchmark___1K_chunk____1KB-2	      50	 156292302 ns/op	  12.80 MB/s
+--- Histogram (unit: ms)
+	Count: 50  Min: 144  Max: 169  Avg: 155.82
+	------------------------------------------------------------
+	[144, 145)   1    2.0%    2.0%  
+	[145, 146)   0    0.0%    2.0%  
+	[146, 147)   1    2.0%    4.0%  
+	[147, 148)   0    0.0%    4.0%  
+	[148, 150)   3    6.0%   10.0%  #
+	[150, 152)   5   10.0%   20.0%  #
+	[152, 155)  14   28.0%   48.0%  ###
+	[155, 159)  12   24.0%   72.0%  ##
+	[159, 164)   8   16.0%   88.0%  ##
+	[164, 170)   6   12.0%  100.0%  #
+	[170, 178)   0    0.0%  100.0%  
+	[178, 188)   0    0.0%  100.0%  
+	[188, 201)   0    0.0%  100.0%  
+	[201, 217)   0    0.0%  100.0%  
+	[217, 237)   0    0.0%  100.0%  
+	[237, 261)   0    0.0%  100.0%  
+	[261, inf)   0    0.0%  100.0%  
+Benchmark___1K_chunk___10KB	      20	 468904636 ns/op	  42.65 MB/s
+--- Histogram (unit: ms)
+	Count: 20  Min: 458  Max: 491  Avg: 468.40
+	------------------------------------------------------------
+	[458, 459)   2   10.0%   10.0%  #
+	[459, 460)   2   10.0%   20.0%  #
+	[460, 461)   2   10.0%   30.0%  #
+	[461, 463)   1    5.0%   35.0%  #
+	[463, 465)   1    5.0%   40.0%  #
+	[465, 468)   2   10.0%   50.0%  #
+	[468, 472)   2   10.0%   60.0%  #
+	[472, 477)   6   30.0%   90.0%  ###
+	[477, 483)   0    0.0%   90.0%  
+	[483, 491)   1    5.0%   95.0%  #
+	[491, 501)   1    5.0%  100.0%  #
+	[501, 513)   0    0.0%  100.0%  
+	[513, 529)   0    0.0%  100.0%  
+	[529, 549)   0    0.0%  100.0%  
+	[549, 575)   0    0.0%  100.0%  
+	[575, 608)   0    0.0%  100.0%  
+	[608, inf)   0    0.0%  100.0%  
+Benchmark___1K_chunk___10KB-2	      30	 263653358 ns/op	  75.86 MB/s
+--- Histogram (unit: ms)
+	Count: 30  Min: 242  Max: 275  Avg: 263.13
+	------------------------------------------------------------
+	[242, 243)   2    6.7%    6.7%  #
+	[243, 244)   0    0.0%    6.7%  
+	[244, 245)   0    0.0%    6.7%  
+	[245, 247)   0    0.0%    6.7%  
+	[247, 249)   0    0.0%    6.7%  
+	[249, 252)   0    0.0%    6.7%  
+	[252, 256)   3   10.0%   16.7%  #
+	[256, 261)   5   16.7%   33.3%  ##
+	[261, 267)   8   26.7%   60.0%  ###
+	[267, 275)  11   36.7%   96.7%  ####
+	[275, 285)   1    3.3%  100.0%  
+	[285, 297)   0    0.0%  100.0%  
+	[297, 313)   0    0.0%  100.0%  
+	[313, 333)   0    0.0%  100.0%  
+	[333, 359)   0    0.0%  100.0%  
+	[359, 392)   0    0.0%  100.0%  
+	[392, inf)   0    0.0%  100.0%  
+Benchmark___1K_chunk__100KB	       3	2573103606 ns/op	  77.73 MB/s
+--- Histogram (unit: s)
+	Count: 3  Min: 2  Max: 2  Avg: 2.00
+	------------------------------------------------------------
+	[  2, inf)  3  100.0%  100.0%  ##########
+Benchmark___1K_chunk__100KB-2	       5	1337696624 ns/op	 149.51 MB/s
+--- Histogram (unit: s)
+	Count: 5  Min: 1  Max: 1  Avg: 1.00
+	------------------------------------------------------------
+	[  1, inf)  5  100.0%  100.0%  ##########
+
+Benchmark__per_chunk____1B	   50000	    192129 ns/op	   0.01 MB/s
+Benchmark__per_chunk____1B-2	   50000	    131601 ns/op	   0.02 MB/s
+Benchmark__per_chunk___10B	   20000	    372009 ns/op	   0.05 MB/s
+Benchmark__per_chunk___10B-2	   30000	    222774 ns/op	   0.09 MB/s
+Benchmark__per_chunk__100B	   20000	    434465 ns/op	   0.46 MB/s
+Benchmark__per_chunk__100B-2	   30000	    238245 ns/op	   0.84 MB/s
+Benchmark__per_chunk___1KB	   20000	    464091 ns/op	   4.31 MB/s
+Benchmark__per_chunk___1KB-2	   30000	    253694 ns/op	   7.88 MB/s
+Benchmark__per_chunk__10KB	   10000	    650380 ns/op	  30.75 MB/s
+Benchmark__per_chunk__10KB-2	   20000	    357218 ns/op	  55.99 MB/s
+Benchmark__per_chunk_100KB	    3000	   2728670 ns/op	  73.30 MB/s
+Benchmark__per_chunk_100KB-2	    5000	   1380520 ns/op	 144.87 MB/s
+
+Benchmark___10B_mux__100_chunks___10B	     300	  26348223 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 300  Min: 9  Max: 30  Avg: 25.79
+	------------------------------------------------------------
+	[  9,  10)   19    6.3%    6.3%  #
+	[ 10,  11)    5    1.7%    8.0%  
+	[ 11,  12)    0    0.0%    8.0%  
+	[ 12,  13)    0    0.0%    8.0%  
+	[ 13,  15)    0    0.0%    8.0%  
+	[ 15,  17)    0    0.0%    8.0%  
+	[ 17,  20)    1    0.3%    8.3%  
+	[ 20,  24)   10    3.3%   11.7%  
+	[ 24,  29)  233   77.7%   89.3%  ########
+	[ 29,  35)   32   10.7%  100.0%  #
+	[ 35,  42)    0    0.0%  100.0%  
+	[ 42,  51)    0    0.0%  100.0%  
+	[ 51,  62)    0    0.0%  100.0%  
+	[ 62,  75)    0    0.0%  100.0%  
+	[ 75,  92)    0    0.0%  100.0%  
+	[ 92, 112)    0    0.0%  100.0%  
+	[112, inf)    0    0.0%  100.0%  
+Benchmark___10B_mux__100_chunks___10B-2	    1000	   9053248 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 4  Max: 17  Avg: 8.54
+	------------------------------------------------------------
+	[  4,   5)     3    0.3%    0.3%  
+	[  5,   6)    48    4.8%    5.1%  
+	[  6,   7)   166   16.6%   21.7%  ##
+	[  7,   8)   206   20.6%   42.3%  ##
+	[  8,   9)   179   17.9%   60.2%  ##
+	[  9,  11)   186   18.6%   78.8%  ##
+	[ 11,  13)   111   11.1%   89.9%  #
+	[ 13,  16)    96    9.6%   99.5%  #
+	[ 16,  19)     5    0.5%  100.0%  
+	[ 19,  23)     0    0.0%  100.0%  
+	[ 23,  28)     0    0.0%  100.0%  
+	[ 28,  34)     0    0.0%  100.0%  
+	[ 34,  41)     0    0.0%  100.0%  
+	[ 41, inf)     0    0.0%  100.0%  
+Benchmark___10B_mux__100_chunks__100B	     300	  29202434 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 300  Min: 9  Max: 34  Avg: 28.80
+	------------------------------------------------------------
+	[  9,  10)    4    1.3%    1.3%  
+	[ 10,  11)   10    3.3%    4.7%  
+	[ 11,  12)    6    2.0%    6.7%  
+	[ 12,  13)    0    0.0%    6.7%  
+	[ 13,  15)    0    0.0%    6.7%  
+	[ 15,  17)    0    0.0%    6.7%  
+	[ 17,  20)    0    0.0%    6.7%  
+	[ 20,  24)    0    0.0%    6.7%  
+	[ 24,  29)   20    6.7%   13.3%  #
+	[ 29,  35)  260   86.7%  100.0%  #########
+	[ 35,  43)    0    0.0%  100.0%  
+	[ 43,  53)    0    0.0%  100.0%  
+	[ 53,  66)    0    0.0%  100.0%  
+	[ 66,  82)    0    0.0%  100.0%  
+	[ 82, 102)    0    0.0%  100.0%  
+	[102, 126)    0    0.0%  100.0%  
+	[126, inf)    0    0.0%  100.0%  
+Benchmark___10B_mux__100_chunks__100B-2	    1000	  10238260 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 5  Max: 21  Avg: 9.74
+	------------------------------------------------------------
+	[  5,   6)    39    3.9%    3.9%  
+	[  6,   7)   118   11.8%   15.7%  #
+	[  7,   8)   123   12.3%   28.0%  #
+	[  8,   9)   141   14.1%   42.1%  #
+	[  9,  11)   217   21.7%   63.8%  ##
+	[ 11,  13)   152   15.2%   79.0%  ##
+	[ 13,  16)   157   15.7%   94.7%  ##
+	[ 16,  19)    50    5.0%   99.7%  #
+	[ 19,  23)     3    0.3%  100.0%  
+	[ 23,  28)     0    0.0%  100.0%  
+	[ 28,  34)     0    0.0%  100.0%  
+	[ 34,  41)     0    0.0%  100.0%  
+	[ 41,  50)     0    0.0%  100.0%  
+	[ 50,  61)     0    0.0%  100.0%  
+	[ 61,  74)     0    0.0%  100.0%  
+	[ 74,  90)     0    0.0%  100.0%  
+	[ 90, inf)     0    0.0%  100.0%  
+Benchmark___10B_mux__100_chunks___1KB	     300	  30121503 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 300  Min: 9  Max: 38  Avg: 29.57
+	------------------------------------------------------------
+	[  9,  10)    7    2.3%    2.3%  
+	[ 10,  11)   13    4.3%    6.7%  
+	[ 11,  12)    5    1.7%    8.3%  
+	[ 12,  13)    3    1.0%    9.3%  
+	[ 13,  15)    3    1.0%   10.3%  
+	[ 15,  18)    0    0.0%   10.3%  
+	[ 18,  21)    0    0.0%   10.3%  
+	[ 21,  25)    0    0.0%   10.3%  
+	[ 25,  31)   33   11.0%   21.3%  #
+	[ 31,  38)  235   78.3%   99.7%  ########
+	[ 38,  47)    1    0.3%  100.0%  
+	[ 47,  58)    0    0.0%  100.0%  
+	[ 58,  72)    0    0.0%  100.0%  
+	[ 72,  90)    0    0.0%  100.0%  
+	[ 90, 113)    0    0.0%  100.0%  
+	[113, 141)    0    0.0%  100.0%  
+	[141, inf)    0    0.0%  100.0%  
+Benchmark___10B_mux__100_chunks___1KB-2	    1000	  11123358 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 4  Max: 22  Avg: 10.61
+	------------------------------------------------------------
+	[  4,   5)    21    2.1%    2.1%  
+	[  5,   6)    66    6.6%    8.7%  #
+	[  6,   7)   110   11.0%   19.7%  #
+	[  7,   8)    88    8.8%   28.5%  #
+	[  8,  10)   175   17.5%   46.0%  ##
+	[ 10,  12)   152   15.2%   61.2%  ##
+	[ 12,  15)   168   16.8%   78.0%  ##
+	[ 15,  18)   150   15.0%   93.0%  ##
+	[ 18,  22)    69    6.9%   99.9%  #
+	[ 22,  27)     1    0.1%  100.0%  
+	[ 27,  33)     0    0.0%  100.0%  
+	[ 33,  41)     0    0.0%  100.0%  
+	[ 41,  51)     0    0.0%  100.0%  
+	[ 51,  63)     0    0.0%  100.0%  
+	[ 63,  77)     0    0.0%  100.0%  
+	[ 77,  94)     0    0.0%  100.0%  
+	[ 94, inf)     0    0.0%  100.0%  
+Benchmark___10B_mux__100_chunks__10KB	     200	  44810613 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 200  Min: 9  Max: 57  Avg: 44.30
+	------------------------------------------------------------
+	[  9,  10)    1    0.5%    0.5%  
+	[ 10,  11)    9    4.5%    5.0%  
+	[ 11,  12)    1    0.5%    5.5%  
+	[ 12,  14)   11    5.5%   11.0%  #
+	[ 14,  16)    7    3.5%   14.5%  
+	[ 16,  19)    2    1.0%   15.5%  
+	[ 19,  23)    0    0.0%   15.5%  
+	[ 23,  29)    0    0.0%   15.5%  
+	[ 29,  36)    0    0.0%   15.5%  
+	[ 36,  46)   21   10.5%   26.0%  #
+	[ 46,  59)  148   74.0%  100.0%  #######
+	[ 59,  76)    0    0.0%  100.0%  
+	[ 76,  98)    0    0.0%  100.0%  
+	[ 98, 126)    0    0.0%  100.0%  
+	[126, 163)    0    0.0%  100.0%  
+	[163, 210)    0    0.0%  100.0%  
+	[210, inf)    0    0.0%  100.0%  
+Benchmark___10B_mux__100_chunks__10KB-2	     300	  23793028 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 300  Min: 4  Max: 41  Avg: 23.28
+	------------------------------------------------------------
+	[  4,   5)    1    0.3%    0.3%  
+	[  5,   6)    3    1.0%    1.3%  
+	[  6,   7)    2    0.7%    2.0%  
+	[  7,   9)    9    3.0%    5.0%  
+	[  9,  11)    9    3.0%    8.0%  
+	[ 11,  14)   21    7.0%   15.0%  #
+	[ 14,  18)   19    6.3%   21.3%  #
+	[ 18,  23)   51   17.0%   38.3%  ##
+	[ 23,  29)  108   36.0%   74.3%  ####
+	[ 29,  37)   70   23.3%   97.7%  ##
+	[ 37,  48)    7    2.3%  100.0%  
+	[ 48,  62)    0    0.0%  100.0%  
+	[ 62,  79)    0    0.0%  100.0%  
+	[ 79, 101)    0    0.0%  100.0%  
+	[101, 130)    0    0.0%  100.0%  
+	[130, 166)    0    0.0%  100.0%  
+	[166, inf)    0    0.0%  100.0%  
+Benchmark___10B_mux___1K_chunks___10B	     100	 131543346 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 100  Min: 12  Max: 215  Avg: 131.05
+	------------------------------------------------------------
+	[ 12,  13)    1    1.0%    1.0%  
+	[ 13,  14)    0    0.0%    1.0%  
+	[ 14,  16)    0    0.0%    1.0%  
+	[ 16,  18)    0    0.0%    1.0%  
+	[ 18,  22)    2    2.0%    3.0%  
+	[ 22,  27)    0    0.0%    3.0%  
+	[ 27,  35)    2    2.0%    5.0%  
+	[ 35,  46)    0    0.0%    5.0%  
+	[ 46,  63)    3    3.0%    8.0%  
+	[ 63,  87)   18   18.0%   26.0%  ##
+	[ 87, 121)   21   21.0%   47.0%  ##
+	[121, 170)   16   16.0%   63.0%  ##
+	[170, 240)   37   37.0%  100.0%  ####
+	[240, 339)    0    0.0%  100.0%  
+	[339, 481)    0    0.0%  100.0%  
+	[481, 684)    0    0.0%  100.0%  
+	[684, inf)    0    0.0%  100.0%  
+Benchmark___10B_mux___1K_chunks___10B-2	     300	  26865810 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 300  Min: 5  Max: 108  Avg: 26.37
+	------------------------------------------------------------
+	[  5,   6)   18    6.0%    6.0%  #
+	[  6,   7)   10    3.3%    9.3%  
+	[  7,   8)   22    7.3%   16.7%  #
+	[  8,  10)   50   16.7%   33.3%  ##
+	[ 10,  13)   62   20.7%   54.0%  ##
+	[ 13,  17)   43   14.3%   68.3%  #
+	[ 17,  23)   21    7.0%   75.3%  #
+	[ 23,  31)    5    1.7%   77.0%  
+	[ 31,  42)    5    1.7%   78.7%  
+	[ 42,  58)    4    1.3%   80.0%  
+	[ 58,  79)   19    6.3%   86.3%  #
+	[ 79, 108)   40   13.3%   99.7%  #
+	[108, 148)    1    0.3%  100.0%  
+	[148, 203)    0    0.0%  100.0%  
+	[203, 278)    0    0.0%  100.0%  
+	[278, 380)    0    0.0%  100.0%  
+	[380, inf)    0    0.0%  100.0%  
+Benchmark___10B_mux___1K_chunks__100B	      50	 160157465 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 50  Min: 73  Max: 233  Avg: 159.76
+	------------------------------------------------------------
+	[ 73,  74)   1    2.0%    2.0%  
+	[ 74,  75)   0    0.0%    2.0%  
+	[ 75,  76)   0    0.0%    2.0%  
+	[ 76,  78)   0    0.0%    2.0%  
+	[ 78,  81)   2    4.0%    6.0%  
+	[ 81,  86)   3    6.0%   12.0%  #
+	[ 86,  93)   2    4.0%   16.0%  
+	[ 93, 103)   4    8.0%   24.0%  #
+	[103, 117)   4    8.0%   32.0%  #
+	[117, 138)   5   10.0%   42.0%  #
+	[138, 167)   8   16.0%   58.0%  ##
+	[167, 208)   2    4.0%   62.0%  
+	[208, 265)  19   38.0%  100.0%  ####
+	[265, 346)   0    0.0%  100.0%  
+	[346, 460)   0    0.0%  100.0%  
+	[460, 619)   0    0.0%  100.0%  
+	[619, inf)   0    0.0%  100.0%  
+Benchmark___10B_mux___1K_chunks__100B-2	     200	  38107608 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 200  Min: 4  Max: 124  Avg: 37.60
+	------------------------------------------------------------
+	[  4,   5)    1    0.5%    0.5%  
+	[  5,   6)    9    4.5%    5.0%  
+	[  6,   7)    2    1.0%    6.0%  
+	[  7,   9)    9    4.5%   10.5%  
+	[  9,  12)   28   14.0%   24.5%  #
+	[ 12,  16)   36   18.0%   42.5%  ##
+	[ 16,  22)   40   20.0%   62.5%  ##
+	[ 22,  31)   13    6.5%   69.0%  #
+	[ 31,  43)    6    3.0%   72.0%  
+	[ 43,  60)    3    1.5%   73.5%  
+	[ 60,  84)    5    2.5%   76.0%  
+	[ 84, 117)   44   22.0%   98.0%  ##
+	[117, 163)    4    2.0%  100.0%  
+	[163, 226)    0    0.0%  100.0%  
+	[226, 313)    0    0.0%  100.0%  
+	[313, 432)    0    0.0%  100.0%  
+	[432, inf)    0    0.0%  100.0%  
+Benchmark___10B_mux___1K_chunks___1KB	     100	 163950952 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 100  Min: 9  Max: 265  Avg: 163.45
+	------------------------------------------------------------
+	[  9,  10)    2    2.0%    2.0%  
+	[ 10,  11)    0    0.0%    2.0%  
+	[ 11,  13)    0    0.0%    2.0%  
+	[ 13,  16)    1    1.0%    3.0%  
+	[ 16,  20)    1    1.0%    4.0%  
+	[ 20,  26)    0    0.0%    4.0%  
+	[ 26,  35)    1    1.0%    5.0%  
+	[ 35,  48)    3    3.0%    8.0%  
+	[ 48,  67)    0    0.0%    8.0%  
+	[ 67,  94)    9    9.0%   17.0%  #
+	[ 94, 134)   21   21.0%   38.0%  ##
+	[134, 192)   28   28.0%   66.0%  ###
+	[192, 276)   34   34.0%  100.0%  ###
+	[276, 398)    0    0.0%  100.0%  
+	[398, 574)    0    0.0%  100.0%  
+	[574, 829)    0    0.0%  100.0%  
+	[829, inf)    0    0.0%  100.0%  
+Benchmark___10B_mux___1K_chunks___1KB-2	     200	  43634458 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 200  Min: 4  Max: 137  Avg: 43.13
+	------------------------------------------------------------
+	[  4,   5)    7    3.5%    3.5%  
+	[  5,   6)   15    7.5%   11.0%  #
+	[  6,   7)    2    1.0%   12.0%  
+	[  7,   9)    9    4.5%   16.5%  
+	[  9,  12)   20   10.0%   26.5%  #
+	[ 12,  17)   22   11.0%   37.5%  #
+	[ 17,  24)   27   13.5%   51.0%  #
+	[ 24,  33)   17    8.5%   59.5%  #
+	[ 33,  46)   14    7.0%   66.5%  #
+	[ 46,  64)    9    4.5%   71.0%  
+	[ 64,  90)   13    6.5%   77.5%  #
+	[ 90, 126)   35   17.5%   95.0%  ##
+	[126, 176)   10    5.0%  100.0%  #
+	[176, 245)    0    0.0%  100.0%  
+	[245, 340)    0    0.0%  100.0%  
+	[340, 473)    0    0.0%  100.0%  
+	[473, inf)    0    0.0%  100.0%  
+Benchmark___10B_mux___1K_chunks__10KB	     100	  93479160 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 100  Min: 8  Max: 138  Avg: 92.97
+	------------------------------------------------------------
+	[  8,   9)    1    1.0%    1.0%  
+	[  9,  10)    0    0.0%    1.0%  
+	[ 10,  11)    0    0.0%    1.0%  
+	[ 11,  13)    0    0.0%    1.0%  
+	[ 13,  16)    0    0.0%    1.0%  
+	[ 16,  21)    3    3.0%    4.0%  
+	[ 21,  28)    3    3.0%    7.0%  
+	[ 28,  37)    2    2.0%    9.0%  
+	[ 37,  50)    3    3.0%   12.0%  
+	[ 50,  68)   12   12.0%   24.0%  #
+	[ 68,  93)   12   12.0%   36.0%  #
+	[ 93, 128)   55   55.0%   91.0%  ######
+	[128, 177)    9    9.0%  100.0%  #
+	[177, 244)    0    0.0%  100.0%  
+	[244, 337)    0    0.0%  100.0%  
+	[337, 466)    0    0.0%  100.0%  
+	[466, inf)    0    0.0%  100.0%  
+Benchmark___10B_mux___1K_chunks__10KB-2	     100	  54432420 ns/op	   0.00 MB/s
+--- Histogram (unit: ms)
+	Count: 100  Min: 5  Max: 89  Avg: 53.92
+	------------------------------------------------------------
+	[  5,   6)    1    1.0%    1.0%  
+	[  6,   7)    2    2.0%    3.0%  
+	[  7,   8)    1    1.0%    4.0%  
+	[  8,  10)    2    2.0%    6.0%  
+	[ 10,  13)    3    3.0%    9.0%  
+	[ 13,  17)    1    1.0%   10.0%  
+	[ 17,  22)    6    6.0%   16.0%  #
+	[ 22,  29)    2    2.0%   18.0%  
+	[ 29,  39)    8    8.0%   26.0%  #
+	[ 39,  53)   12   12.0%   38.0%  #
+	[ 53,  72)   38   38.0%   76.0%  ####
+	[ 72,  97)   24   24.0%  100.0%  ##
+	[ 97, 131)    0    0.0%  100.0%  
+	[131, 177)    0    0.0%  100.0%  
+	[177, 239)    0    0.0%  100.0%  
+	[239, 322)    0    0.0%  100.0%  
+	[322, inf)    0    0.0%  100.0%  
+Benchmark___1KB_mux__100_chunks___10B	     300	  26012216 ns/op	   0.08 MB/s
+--- Histogram (unit: ms)
+	Count: 300  Min: 8  Max: 32  Avg: 25.48
+	------------------------------------------------------------
+	[  8,   9)    2    0.7%    0.7%  
+	[  9,  10)    0    0.0%    0.7%  
+	[ 10,  11)    0    0.0%    0.7%  
+	[ 11,  12)   10    3.3%    4.0%  
+	[ 12,  14)    0    0.0%    4.0%  
+	[ 14,  16)    1    0.3%    4.3%  
+	[ 16,  19)    0    0.0%    4.3%  
+	[ 19,  23)    9    3.0%    7.3%  
+	[ 23,  28)  202   67.3%   74.7%  #######
+	[ 28,  34)   76   25.3%  100.0%  ###
+	[ 34,  42)    0    0.0%  100.0%  
+	[ 42,  52)    0    0.0%  100.0%  
+	[ 52,  64)    0    0.0%  100.0%  
+	[ 64,  79)    0    0.0%  100.0%  
+	[ 79,  98)    0    0.0%  100.0%  
+	[ 98, 122)    0    0.0%  100.0%  
+	[122, inf)    0    0.0%  100.0%  
+Benchmark___1KB_mux__100_chunks___10B-2	    1000	   7943170 ns/op	   0.25 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 4  Max: 22  Avg: 7.46
+	------------------------------------------------------------
+	[  4,   5)    10    1.0%    1.0%  
+	[  5,   6)   233   23.3%   24.3%  ##
+	[  6,   7)   284   28.4%   52.7%  ###
+	[  7,   8)   126   12.6%   65.3%  #
+	[  8,  10)   155   15.5%   80.8%  ##
+	[ 10,  12)    87    8.7%   89.5%  #
+	[ 12,  15)    82    8.2%   97.7%  #
+	[ 15,  18)    19    1.9%   99.6%  
+	[ 18,  22)     3    0.3%   99.9%  
+	[ 22,  27)     1    0.1%  100.0%  
+	[ 27,  33)     0    0.0%  100.0%  
+	[ 33,  41)     0    0.0%  100.0%  
+	[ 41,  51)     0    0.0%  100.0%  
+	[ 51,  63)     0    0.0%  100.0%  
+	[ 63,  77)     0    0.0%  100.0%  
+	[ 77,  94)     0    0.0%  100.0%  
+	[ 94, inf)     0    0.0%  100.0%  
+Benchmark___1KB_mux__100_chunks__100B	     300	  26131776 ns/op	   0.08 MB/s
+--- Histogram (unit: ms)
+	Count: 300  Min: 8  Max: 35  Avg: 25.63
+	------------------------------------------------------------
+	[  8,   9)    1    0.3%    0.3%  
+	[  9,  10)    0    0.0%    0.3%  
+	[ 10,  11)    0    0.0%    0.3%  
+	[ 11,  12)    0    0.0%    0.3%  
+	[ 12,  14)    0    0.0%    0.3%  
+	[ 14,  17)    0    0.0%    0.3%  
+	[ 17,  20)    1    0.3%    0.7%  
+	[ 20,  24)  126   42.0%   42.7%  ####
+	[ 24,  29)   86   28.7%   71.3%  ###
+	[ 29,  36)   86   28.7%  100.0%  ###
+	[ 36,  45)    0    0.0%  100.0%  
+	[ 45,  56)    0    0.0%  100.0%  
+	[ 56,  69)    0    0.0%  100.0%  
+	[ 69,  86)    0    0.0%  100.0%  
+	[ 86, 107)    0    0.0%  100.0%  
+	[107, 134)    0    0.0%  100.0%  
+	[134, inf)    0    0.0%  100.0%  
+Benchmark___1KB_mux__100_chunks__100B-2	    1000	   8434636 ns/op	   0.24 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 4  Max: 23  Avg: 7.96
+	------------------------------------------------------------
+	[  4,   5)     6    0.6%    0.6%  
+	[  5,   6)   165   16.5%   17.1%  ##
+	[  6,   7)   286   28.6%   45.7%  ###
+	[  7,   8)   152   15.2%   60.9%  ##
+	[  8,  10)   151   15.1%   76.0%  ##
+	[ 10,  12)    97    9.7%   85.7%  #
+	[ 12,  15)    91    9.1%   94.8%  #
+	[ 15,  18)    43    4.3%   99.1%  
+	[ 18,  22)     7    0.7%   99.8%  
+	[ 22,  27)     2    0.2%  100.0%  
+	[ 27,  34)     0    0.0%  100.0%  
+	[ 34,  42)     0    0.0%  100.0%  
+	[ 42,  52)     0    0.0%  100.0%  
+	[ 52,  64)     0    0.0%  100.0%  
+	[ 64,  79)     0    0.0%  100.0%  
+	[ 79,  97)     0    0.0%  100.0%  
+	[ 97, inf)     0    0.0%  100.0%  
+Benchmark___1KB_mux__100_chunks___1KB	     200	  31946178 ns/op	   0.06 MB/s
+--- Histogram (unit: ms)
+	Count: 200  Min: 9  Max: 44  Avg: 31.49
+	------------------------------------------------------------
+	[  9,  10)   12    6.0%    6.0%  #
+	[ 10,  11)    1    0.5%    6.5%  
+	[ 11,  12)    0    0.0%    6.5%  
+	[ 12,  14)    4    2.0%    8.5%  
+	[ 14,  16)    0    0.0%    8.5%  
+	[ 16,  19)    2    1.0%    9.5%  
+	[ 19,  23)    0    0.0%    9.5%  
+	[ 23,  28)   13    6.5%   16.0%  #
+	[ 28,  34)   93   46.5%   62.5%  #####
+	[ 34,  42)   71   35.5%   98.0%  ####
+	[ 42,  52)    4    2.0%  100.0%  
+	[ 52,  65)    0    0.0%  100.0%  
+	[ 65,  82)    0    0.0%  100.0%  
+	[ 82, 103)    0    0.0%  100.0%  
+	[103, 130)    0    0.0%  100.0%  
+	[130, 164)    0    0.0%  100.0%  
+	[164, inf)    0    0.0%  100.0%  
+Benchmark___1KB_mux__100_chunks___1KB-2	    1000	  11688416 ns/op	   0.17 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 4  Max: 28  Avg: 11.20
+	------------------------------------------------------------
+	[  4,   5)     5    0.5%    0.5%  
+	[  5,   6)    69    6.9%    7.4%  #
+	[  6,   7)    75    7.5%   14.9%  #
+	[  7,   8)   121   12.1%   27.0%  #
+	[  8,  10)   171   17.1%   44.1%  ##
+	[ 10,  12)   134   13.4%   57.5%  #
+	[ 12,  15)   172   17.2%   74.7%  ##
+	[ 15,  19)   170   17.0%   91.7%  ##
+	[ 19,  24)    79    7.9%   99.6%  #
+	[ 24,  30)     4    0.4%  100.0%  
+	[ 30,  38)     0    0.0%  100.0%  
+	[ 38,  48)     0    0.0%  100.0%  
+	[ 48,  60)     0    0.0%  100.0%  
+	[ 60,  75)     0    0.0%  100.0%  
+	[ 75,  94)     0    0.0%  100.0%  
+	[ 94, 118)     0    0.0%  100.0%  
+	[118, inf)     0    0.0%  100.0%  
+Benchmark___1KB_mux__100_chunks__10KB	     200	  48210454 ns/op	   0.04 MB/s
+--- Histogram (unit: ms)
+	Count: 200  Min: 9  Max: 61  Avg: 47.74
+	------------------------------------------------------------
+	[  9,  10)    1    0.5%    0.5%  
+	[ 10,  11)    0    0.0%    0.5%  
+	[ 11,  12)    0    0.0%    0.5%  
+	[ 12,  14)   14    7.0%    7.5%  #
+	[ 14,  16)    9    4.5%   12.0%  
+	[ 16,  19)    5    2.5%   14.5%  
+	[ 19,  23)    2    1.0%   15.5%  
+	[ 23,  29)    0    0.0%   15.5%  
+	[ 29,  37)    0    0.0%   15.5%  
+	[ 37,  47)    7    3.5%   19.0%  
+	[ 47,  60)  159   79.5%   98.5%  ########
+	[ 60,  78)    3    1.5%  100.0%  
+	[ 78, 101)    0    0.0%  100.0%  
+	[101, 131)    0    0.0%  100.0%  
+	[131, 170)    0    0.0%  100.0%  
+	[170, 222)    0    0.0%  100.0%  
+	[222, inf)    0    0.0%  100.0%  
+Benchmark___1KB_mux__100_chunks__10KB-2	     300	  24547213 ns/op	   0.08 MB/s
+--- Histogram (unit: ms)
+	Count: 300  Min: 4  Max: 42  Avg: 24.07
+	------------------------------------------------------------
+	[  4,   5)    1    0.3%    0.3%  
+	[  5,   6)    8    2.7%    3.0%  
+	[  6,   7)    1    0.3%    3.3%  
+	[  7,   9)    6    2.0%    5.3%  
+	[  9,  11)   14    4.7%   10.0%  
+	[ 11,  14)   24    8.0%   18.0%  #
+	[ 14,  18)   13    4.3%   22.3%  
+	[ 18,  23)   37   12.3%   34.7%  #
+	[ 23,  29)   67   22.3%   57.0%  ##
+	[ 29,  37)  120   40.0%   97.0%  ####
+	[ 37,  48)    9    3.0%  100.0%  
+	[ 48,  62)    0    0.0%  100.0%  
+	[ 62,  80)    0    0.0%  100.0%  
+	[ 80, 103)    0    0.0%  100.0%  
+	[103, 132)    0    0.0%  100.0%  
+	[132, 169)    0    0.0%  100.0%  
+	[169, inf)    0    0.0%  100.0%  
+Benchmark___1KB_mux___1K_chunks___10B	     100	 131862174 ns/op	   0.02 MB/s
+--- Histogram (unit: ms)
+	Count: 100  Min: 10  Max: 209  Avg: 131.34
+	------------------------------------------------------------
+	[ 10,  11)    1    1.0%    1.0%  
+	[ 11,  12)    1    1.0%    2.0%  
+	[ 12,  14)    0    0.0%    2.0%  
+	[ 14,  16)    0    0.0%    2.0%  
+	[ 16,  20)    1    1.0%    3.0%  
+	[ 20,  25)    0    0.0%    3.0%  
+	[ 25,  33)    0    0.0%    3.0%  
+	[ 33,  44)    0    0.0%    3.0%  
+	[ 44,  60)    4    4.0%    7.0%  
+	[ 60,  83)   16   16.0%   23.0%  ##
+	[ 83, 117)   18   18.0%   41.0%  ##
+	[117, 165)   24   24.0%   65.0%  ##
+	[165, 234)   35   35.0%  100.0%  ####
+	[234, 332)    0    0.0%  100.0%  
+	[332, 471)    0    0.0%  100.0%  
+	[471, 669)    0    0.0%  100.0%  
+	[669, inf)    0    0.0%  100.0%  
+Benchmark___1KB_mux___1K_chunks___10B-2	     300	  23370846 ns/op	   0.09 MB/s
+--- Histogram (unit: ms)
+	Count: 300  Min: 4  Max: 101  Avg: 22.88
+	------------------------------------------------------------
+	[  4,   5)    1    0.3%    0.3%  
+	[  5,   6)   24    8.0%    8.3%  #
+	[  6,   7)   49   16.3%   24.7%  ##
+	[  7,   9)   48   16.0%   40.7%  ##
+	[  9,  12)   26    8.7%   49.3%  #
+	[ 12,  16)   53   17.7%   67.0%  ##
+	[ 16,  22)   36   12.0%   79.0%  #
+	[ 22,  30)    5    1.7%   80.7%  
+	[ 30,  41)    4    1.3%   82.0%  
+	[ 41,  56)    3    1.0%   83.0%  
+	[ 56,  77)   21    7.0%   90.0%  #
+	[ 77, 105)   30   10.0%  100.0%  #
+	[105, 143)    0    0.0%  100.0%  
+	[143, 195)    0    0.0%  100.0%  
+	[195, 266)    0    0.0%  100.0%  
+	[266, 362)    0    0.0%  100.0%  
+	[362, inf)    0    0.0%  100.0%  
+Benchmark___1KB_mux___1K_chunks__100B	      50	 138026822 ns/op	   0.01 MB/s
+--- Histogram (unit: ms)
+	Count: 50  Min: 22  Max: 222  Avg: 137.50
+	------------------------------------------------------------
+	[ 22,  23)   1    2.0%    2.0%  
+	[ 23,  24)   1    2.0%    4.0%  
+	[ 24,  26)   0    0.0%    4.0%  
+	[ 26,  28)   0    0.0%    4.0%  
+	[ 28,  32)   0    0.0%    4.0%  
+	[ 32,  37)   0    0.0%    4.0%  
+	[ 37,  45)   0    0.0%    4.0%  
+	[ 45,  56)   2    4.0%    8.0%  
+	[ 56,  72)   2    4.0%   12.0%  
+	[ 72,  96)   7   14.0%   26.0%  #
+	[ 96, 130)  11   22.0%   48.0%  ##
+	[130, 178)  10   20.0%   68.0%  ##
+	[178, 247)  16   32.0%  100.0%  ###
+	[247, 345)   0    0.0%  100.0%  
+	[345, 485)   0    0.0%  100.0%  
+	[485, 684)   0    0.0%  100.0%  
+	[684, inf)   0    0.0%  100.0%  
+Benchmark___1KB_mux___1K_chunks__100B-2	     200	  29916622 ns/op	   0.07 MB/s
+--- Histogram (unit: ms)
+	Count: 200  Min: 5  Max: 117  Avg: 29.41
+	------------------------------------------------------------
+	[  5,   6)    8    4.0%    4.0%  
+	[  6,   7)   19    9.5%   13.5%  #
+	[  7,   8)   15    7.5%   21.0%  #
+	[  8,  10)   31   15.5%   36.5%  ##
+	[ 10,  13)   25   12.5%   49.0%  #
+	[ 13,  17)   37   18.5%   67.5%  ##
+	[ 17,  23)   15    7.5%   75.0%  #
+	[ 23,  32)    4    2.0%   77.0%  
+	[ 32,  44)    2    1.0%   78.0%  
+	[ 44,  60)    0    0.0%   78.0%  
+	[ 60,  83)    4    2.0%   80.0%  
+	[ 83, 114)   38   19.0%   99.0%  ##
+	[114, 157)    2    1.0%  100.0%  
+	[157, 216)    0    0.0%  100.0%  
+	[216, 297)    0    0.0%  100.0%  
+	[297, 408)    0    0.0%  100.0%  
+	[408, inf)    0    0.0%  100.0%  
+Benchmark___1KB_mux___1K_chunks___1KB	      50	 165938483 ns/op	   0.01 MB/s
+--- Histogram (unit: ms)
+	Count: 50  Min: 19  Max: 292  Avg: 165.50
+	------------------------------------------------------------
+	[ 19,  20)   1    2.0%    2.0%  
+	[ 20,  21)   0    0.0%    2.0%  
+	[ 21,  23)   0    0.0%    2.0%  
+	[ 23,  26)   0    0.0%    2.0%  
+	[ 26,  30)   0    0.0%    2.0%  
+	[ 30,  36)   0    0.0%    2.0%  
+	[ 36,  45)   0    0.0%    2.0%  
+	[ 45,  58)   1    2.0%    4.0%  
+	[ 58,  77)   0    0.0%    4.0%  
+	[ 77, 105)  10   20.0%   24.0%  ##
+	[105, 147)  11   22.0%   46.0%  ##
+	[147, 208)  14   28.0%   74.0%  ###
+	[208, 296)  13   26.0%  100.0%  ###
+	[296, 425)   0    0.0%  100.0%  
+	[425, 612)   0    0.0%  100.0%  
+	[612, 884)   0    0.0%  100.0%  
+	[884, inf)   0    0.0%  100.0%  
+Benchmark___1KB_mux___1K_chunks___1KB-2	     200	  44332653 ns/op	   0.05 MB/s
+--- Histogram (unit: ms)
+	Count: 200  Min: 5  Max: 136  Avg: 43.85
+	------------------------------------------------------------
+	[  5,   6)   10    5.0%    5.0%  #
+	[  6,   7)    1    0.5%    5.5%  
+	[  7,   8)    2    1.0%    6.5%  
+	[  8,  10)   14    7.0%   13.5%  #
+	[ 10,  13)   22   11.0%   24.5%  #
+	[ 13,  18)   23   11.5%   36.0%  #
+	[ 18,  25)   24   12.0%   48.0%  #
+	[ 25,  34)   21   10.5%   58.5%  #
+	[ 34,  47)   19    9.5%   68.0%  #
+	[ 47,  65)    9    4.5%   72.5%  
+	[ 65,  90)   10    5.0%   77.5%  #
+	[ 90, 125)   38   19.0%   96.5%  ##
+	[125, 174)    7    3.5%  100.0%  
+	[174, 242)    0    0.0%  100.0%  
+	[242, 336)    0    0.0%  100.0%  
+	[336, 466)    0    0.0%  100.0%  
+	[466, inf)    0    0.0%  100.0%  
+Benchmark___1KB_mux___1K_chunks__10KB	     100	  97935953 ns/op	   0.02 MB/s
+--- Histogram (unit: ms)
+	Count: 100  Min: 10  Max: 161  Avg: 97.40
+	------------------------------------------------------------
+	[ 10,  11)    1    1.0%    1.0%  
+	[ 11,  12)    0    0.0%    1.0%  
+	[ 12,  13)    0    0.0%    1.0%  
+	[ 13,  15)    1    1.0%    2.0%  
+	[ 15,  18)    0    0.0%    2.0%  
+	[ 18,  23)    0    0.0%    2.0%  
+	[ 23,  30)    1    1.0%    3.0%  
+	[ 30,  40)    4    4.0%    7.0%  
+	[ 40,  54)    4    4.0%   11.0%  
+	[ 54,  74)   17   17.0%   28.0%  ##
+	[ 74, 102)   20   20.0%   48.0%  ##
+	[102, 141)   45   45.0%   93.0%  #####
+	[141, 196)    7    7.0%  100.0%  #
+	[196, 273)    0    0.0%  100.0%  
+	[273, 381)    0    0.0%  100.0%  
+	[381, 531)    0    0.0%  100.0%  
+	[531, inf)    0    0.0%  100.0%  
+Benchmark___1KB_mux___1K_chunks__10KB-2	     100	  59656535 ns/op	   0.03 MB/s
+--- Histogram (unit: ms)
+	Count: 100  Min: 5  Max: 111  Avg: 59.16
+	------------------------------------------------------------
+	[  5,   6)    2    2.0%    2.0%  
+	[  6,   7)    0    0.0%    2.0%  
+	[  7,   8)    0    0.0%    2.0%  
+	[  8,  10)    0    0.0%    2.0%  
+	[ 10,  13)    2    2.0%    4.0%  
+	[ 13,  17)    3    3.0%    7.0%  
+	[ 17,  23)    2    2.0%    9.0%  
+	[ 23,  31)    9    9.0%   18.0%  #
+	[ 31,  43)    5    5.0%   23.0%  #
+	[ 43,  59)   17   17.0%   40.0%  ##
+	[ 59,  81)   47   47.0%   87.0%  #####
+	[ 81, 111)   12   12.0%   99.0%  #
+	[111, 152)    1    1.0%  100.0%  
+	[152, 208)    0    0.0%  100.0%  
+	[208, 285)    0    0.0%  100.0%  
+	[285, 390)    0    0.0%  100.0%  
+	[390, inf)    0    0.0%  100.0%  
diff --git a/runtimes/google/ipc/benchmark/benchmark_test.go b/runtimes/google/ipc/benchmark/benchmark_test.go
new file mode 100644
index 0000000..cb459f3
--- /dev/null
+++ b/runtimes/google/ipc/benchmark/benchmark_test.go
@@ -0,0 +1,121 @@
+package benchmark
+
+import (
+	"os"
+	"testing"
+
+	"v.io/core/veyron/lib/testutil/benchmark"
+	"v.io/core/veyron/profiles"
+
+	"v.io/core/veyron2"
+	"v.io/core/veyron2/rt"
+)
+
+var (
+	vrt        veyron2.Runtime
+	serverAddr string
+)
+
+// Benchmarks for non-streaming RPC.
+func runEcho(b *testing.B, payloadSize int) {
+	CallEcho(b, vrt.NewContext(), serverAddr, b.N, payloadSize, benchmark.AddStats(b, 16))
+}
+
+func Benchmark____1B(b *testing.B) { runEcho(b, 1) }
+func Benchmark___10B(b *testing.B) { runEcho(b, 10) }
+func Benchmark__100B(b *testing.B) { runEcho(b, 100) }
+func Benchmark___1KB(b *testing.B) { runEcho(b, 1000) }
+func Benchmark__10KB(b *testing.B) { runEcho(b, 10000) }
+func Benchmark_100KB(b *testing.B) { runEcho(b, 100000) }
+
+// Benchmarks for streaming RPC.
+func runEchoStream(b *testing.B, chunkCnt, payloadSize int) {
+	CallEchoStream(b, vrt.NewContext(), serverAddr, b.N, chunkCnt, payloadSize, benchmark.AddStats(b, 16))
+}
+
+func Benchmark____1_chunk_____1B(b *testing.B) { runEchoStream(b, 1, 1) }
+func Benchmark____1_chunk____10B(b *testing.B) { runEchoStream(b, 1, 10) }
+func Benchmark____1_chunk___100B(b *testing.B) { runEchoStream(b, 1, 100) }
+func Benchmark____1_chunk____1KB(b *testing.B) { runEchoStream(b, 1, 1000) }
+func Benchmark____1_chunk___10KB(b *testing.B) { runEchoStream(b, 1, 10000) }
+func Benchmark____1_chunk__100KB(b *testing.B) { runEchoStream(b, 1, 100000) }
+func Benchmark___10_chunk_____1B(b *testing.B) { runEchoStream(b, 10, 1) }
+func Benchmark___10_chunk____10B(b *testing.B) { runEchoStream(b, 10, 10) }
+func Benchmark___10_chunk___100B(b *testing.B) { runEchoStream(b, 10, 100) }
+func Benchmark___10_chunk____1KB(b *testing.B) { runEchoStream(b, 10, 1000) }
+func Benchmark___10_chunk___10KB(b *testing.B) { runEchoStream(b, 10, 10000) }
+func Benchmark___10_chunk__100KB(b *testing.B) { runEchoStream(b, 10, 100000) }
+func Benchmark__100_chunk_____1B(b *testing.B) { runEchoStream(b, 100, 1) }
+func Benchmark__100_chunk____10B(b *testing.B) { runEchoStream(b, 100, 10) }
+func Benchmark__100_chunk___100B(b *testing.B) { runEchoStream(b, 100, 100) }
+func Benchmark__100_chunk____1KB(b *testing.B) { runEchoStream(b, 100, 1000) }
+func Benchmark__100_chunk___10KB(b *testing.B) { runEchoStream(b, 100, 10000) }
+func Benchmark__100_chunk__100KB(b *testing.B) { runEchoStream(b, 100, 100000) }
+func Benchmark___1K_chunk_____1B(b *testing.B) { runEchoStream(b, 1000, 1) }
+func Benchmark___1K_chunk____10B(b *testing.B) { runEchoStream(b, 1000, 10) }
+func Benchmark___1K_chunk___100B(b *testing.B) { runEchoStream(b, 1000, 100) }
+func Benchmark___1K_chunk____1KB(b *testing.B) { runEchoStream(b, 1000, 1000) }
+func Benchmark___1K_chunk___10KB(b *testing.B) { runEchoStream(b, 1000, 10000) }
+func Benchmark___1K_chunk__100KB(b *testing.B) { runEchoStream(b, 1000, 100000) }
+
+// Benchmarks for per-chunk throughput in streaming RPC.
+func runPerChunk(b *testing.B, payloadSize int) {
+	CallEchoStream(b, vrt.NewContext(), serverAddr, 1, b.N, payloadSize, benchmark.NewStats(1))
+}
+
+func Benchmark__per_chunk____1B(b *testing.B) { runPerChunk(b, 1) }
+func Benchmark__per_chunk___10B(b *testing.B) { runPerChunk(b, 10) }
+func Benchmark__per_chunk__100B(b *testing.B) { runPerChunk(b, 100) }
+func Benchmark__per_chunk___1KB(b *testing.B) { runPerChunk(b, 1000) }
+func Benchmark__per_chunk__10KB(b *testing.B) { runPerChunk(b, 10000) }
+func Benchmark__per_chunk_100KB(b *testing.B) { runPerChunk(b, 100000) }
+
+// Benchmarks for non-streaming RPC while running streaming RPC in background.
+func runMux(b *testing.B, payloadSize, chunkCntB, payloadSizeB int) {
+	_, stop := StartEchoStream(&testing.B{}, vrt.NewContext(), serverAddr, 0, chunkCntB, payloadSizeB, benchmark.NewStats(1))
+	CallEcho(b, vrt.NewContext(), serverAddr, b.N, payloadSize, benchmark.AddStats(b, 16))
+	stop()
+}
+
+func Benchmark___10B_mux__100_chunks___10B(b *testing.B) { runMux(b, 10, 100, 10) }
+func Benchmark___10B_mux__100_chunks__100B(b *testing.B) { runMux(b, 10, 100, 100) }
+func Benchmark___10B_mux__100_chunks___1KB(b *testing.B) { runMux(b, 10, 100, 1000) }
+func Benchmark___10B_mux__100_chunks__10KB(b *testing.B) { runMux(b, 10, 100, 10000) }
+func Benchmark___10B_mux___1K_chunks___10B(b *testing.B) { runMux(b, 10, 1000, 10) }
+func Benchmark___10B_mux___1K_chunks__100B(b *testing.B) { runMux(b, 10, 1000, 100) }
+func Benchmark___10B_mux___1K_chunks___1KB(b *testing.B) { runMux(b, 10, 1000, 1000) }
+func Benchmark___10B_mux___1K_chunks__10KB(b *testing.B) { runMux(b, 10, 1000, 10000) }
+func Benchmark___1KB_mux__100_chunks___10B(b *testing.B) { runMux(b, 1000, 100, 10) }
+func Benchmark___1KB_mux__100_chunks__100B(b *testing.B) { runMux(b, 1000, 100, 100) }
+func Benchmark___1KB_mux__100_chunks___1KB(b *testing.B) { runMux(b, 1000, 100, 1000) }
+func Benchmark___1KB_mux__100_chunks__10KB(b *testing.B) { runMux(b, 1000, 100, 10000) }
+func Benchmark___1KB_mux___1K_chunks___10B(b *testing.B) { runMux(b, 1000, 1000, 10) }
+func Benchmark___1KB_mux___1K_chunks__100B(b *testing.B) { runMux(b, 1000, 1000, 100) }
+func Benchmark___1KB_mux___1K_chunks___1KB(b *testing.B) { runMux(b, 1000, 1000, 1000) }
+func Benchmark___1KB_mux___1K_chunks__10KB(b *testing.B) { runMux(b, 1000, 1000, 10000) }
+
+// A single empty test to avoid:
+// testing: warning: no tests to run
+// from showing up when running benchmarks in this package via "go test"
+func TestNoOp(t *testing.T) {}
+
+func TestMain(m *testing.M) {
+	var err error
+	vrt, err = rt.New()
+	if err != nil {
+		panic(err)
+	}
+
+	var serverStop func()
+	serverAddr, serverStop = StartServer(vrt, profiles.LocalListenSpec)
+
+	// Create a VC to exclude the VC setup time from the benchmark.
+	CallEcho(&testing.B{}, vrt.NewContext(), serverAddr, 1, 0, benchmark.NewStats(1))
+
+	r := benchmark.RunTestMain(m)
+
+	serverStop()
+	vrt.Cleanup()
+
+	os.Exit(r)
+}
diff --git a/runtimes/google/ipc/benchmarks/bmclient/main.go b/runtimes/google/ipc/benchmark/bmclient/main.go
similarity index 77%
rename from runtimes/google/ipc/benchmarks/bmclient/main.go
rename to runtimes/google/ipc/benchmark/bmclient/main.go
index 091421b..e6fc5d3 100644
--- a/runtimes/google/ipc/benchmarks/bmclient/main.go
+++ b/runtimes/google/ipc/benchmark/bmclient/main.go
@@ -8,12 +8,12 @@
 	"testing"
 	"time"
 
+	tbm "v.io/core/veyron/lib/testutil/benchmark"
+	_ "v.io/core/veyron/profiles"
+	"v.io/core/veyron/runtimes/google/ipc/benchmark"
+
 	"v.io/core/veyron2/rt"
 	"v.io/core/veyron2/vlog"
-
-	"v.io/core/veyron/lib/testutil"
-	_ "v.io/core/veyron/profiles"
-	"v.io/core/veyron/runtimes/google/ipc/benchmarks"
 )
 
 var (
@@ -36,20 +36,20 @@
 
 	if *chunkCntMux > 0 && *payloadSizeMux > 0 {
 		dummyB := testing.B{}
-		_, stop := benchmarks.StartEchoStream(&dummyB, vrt.NewContext(), *server, 0, *chunkCntMux, *payloadSizeMux, nil)
+		_, stop := benchmark.StartEchoStream(&dummyB, vrt.NewContext(), *server, 0, *chunkCntMux, *payloadSizeMux, nil)
 		defer stop()
 		vlog.Infof("Started background streaming (chunk_size=%d, payload_size=%d)", *chunkCntMux, *payloadSizeMux)
 	}
 
 	dummyB := testing.B{}
-	stats := testutil.NewBenchStats(16)
+	stats := tbm.NewStats(16)
 
 	now := time.Now()
 	ctx := vrt.NewContext()
 	if *chunkCnt == 0 {
-		benchmarks.CallEcho(&dummyB, ctx, *server, *iterations, *payloadSize, stats)
+		benchmark.CallEcho(&dummyB, ctx, *server, *iterations, *payloadSize, stats)
 	} else {
-		benchmarks.CallEchoStream(&dummyB, ctx, *server, *iterations, *chunkCnt, *payloadSize, stats)
+		benchmark.CallEchoStream(&dummyB, ctx, *server, *iterations, *chunkCnt, *payloadSize, stats)
 	}
 	elapsed := time.Since(now)
 
diff --git a/runtimes/google/ipc/benchmarks/bmserver/main.go b/runtimes/google/ipc/benchmark/bmserver/main.go
similarity index 78%
rename from runtimes/google/ipc/benchmarks/bmserver/main.go
rename to runtimes/google/ipc/benchmark/bmserver/main.go
index f621c7b..6b68072 100644
--- a/runtimes/google/ipc/benchmarks/bmserver/main.go
+++ b/runtimes/google/ipc/benchmark/bmserver/main.go
@@ -2,12 +2,12 @@
 package main
 
 import (
-	"v.io/core/veyron2/rt"
-	"v.io/core/veyron2/vlog"
-
 	"v.io/core/veyron/lib/signals"
 	"v.io/core/veyron/profiles/roaming"
-	"v.io/core/veyron/runtimes/google/ipc/benchmarks"
+	"v.io/core/veyron/runtimes/google/ipc/benchmark"
+
+	"v.io/core/veyron2/rt"
+	"v.io/core/veyron2/vlog"
 )
 
 func main() {
@@ -17,7 +17,7 @@
 	}
 	defer vrt.Cleanup()
 
-	addr, stop := benchmarks.StartServer(vrt, roaming.ListenSpec)
+	addr, stop := benchmark.StartServer(vrt, roaming.ListenSpec)
 	vlog.Infof("Listening on %s", addr)
 	defer stop()
 	<-signals.ShutdownOnSignals(vrt)
diff --git a/runtimes/google/ipc/benchmarks/client.go b/runtimes/google/ipc/benchmark/client.go
similarity index 72%
rename from runtimes/google/ipc/benchmarks/client.go
rename to runtimes/google/ipc/benchmark/client.go
index c920458..2ecdae8 100644
--- a/runtimes/google/ipc/benchmarks/client.go
+++ b/runtimes/google/ipc/benchmark/client.go
@@ -1,4 +1,4 @@
-package benchmarks
+package benchmark
 
 import (
 	"bytes"
@@ -6,25 +6,20 @@
 	"testing"
 	"time"
 
-	"v.io/core/veyron/lib/testutil"
+	"v.io/core/veyron/lib/testutil/benchmark"
 
 	"v.io/core/veyron2/context"
 	"v.io/core/veyron2/vlog"
 )
 
-// CallEcho calls 'Echo' method 'iterations' times with the given payload
-// size, and optionally updates the stats.
-func CallEcho(b *testing.B, ctx *context.T, address string, iterations, payloadSize int, stats *testutil.BenchStats) {
+// CallEcho calls 'Echo' method 'iterations' times with the given payload size.
+func CallEcho(b *testing.B, ctx *context.T, address string, iterations, payloadSize int, stats *benchmark.Stats) {
 	stub := BenchmarkClient(address)
 	payload := make([]byte, payloadSize)
 	for i := range payload {
 		payload[i] = byte(i & 0xff)
 	}
 
-	if stats != nil {
-		stats.Clear()
-	}
-
 	b.SetBytes(int64(payloadSize) * 2) // 2 for round trip of each payload.
 	b.ResetTimer()                     // Exclude setup time from measurement.
 
@@ -44,38 +39,31 @@
 			vlog.Fatalf("Echo returned %v, but expected %v", r, payload)
 		}
 
-		if stats != nil {
-			stats.Add(elapsed)
-		}
+		stats.Add(elapsed)
 	}
 }
 
-// CallEchoStream calls 'EchoStream' method 'iterations' times. Each iteration
-// sends 'chunkCnt' chunks on the stream and receives the same number of chunks
-// back. Each chunk has the given payload size. Optionally updates the stats.
-func CallEchoStream(b *testing.B, ctx *context.T, address string, iterations, chunkCnt, payloadSize int, stats *testutil.BenchStats) {
+// CallEchoStream calls 'EchoStream' method 'iterations' times. Each iteration sends
+// 'chunkCnt' chunks on the stream and receives the same number of chunks back. Each
+// chunk has the given payload size.
+func CallEchoStream(b *testing.B, ctx *context.T, address string, iterations, chunkCnt, payloadSize int, stats *benchmark.Stats) {
 	done, _ := StartEchoStream(b, ctx, address, iterations, chunkCnt, payloadSize, stats)
 	<-done
 }
 
-// StartEchoStream starts to call 'EchoStream' method 'iterations' times.
-// This does not block, and returns a channel that will receive the number
-// of iterations when it's done. It also returns a callback function to stop
-// the streaming. Each iteration requests 'chunkCnt' chunks on the stream and
-// receives that number of chunks back. Each chunk has the given payload size.
-// Optionally updates the stats. Zero 'iterations' means unlimited.
-func StartEchoStream(b *testing.B, ctx *context.T, address string, iterations, chunkCnt, payloadSize int, stats *testutil.BenchStats) (<-chan int, func()) {
+// StartEchoStream starts to call 'EchoStream' method 'iterations' times. This does
+// not block, and returns a channel that will receive the number of iterations when
+// it's done. It also returns a callback function to stop the streaming. Each iteration
+// requests 'chunkCnt' chunks on the stream and receives that number of chunks back.
+// Each chunk has the given payload size. Zero 'iterations' means unlimited.
+func StartEchoStream(b *testing.B, ctx *context.T, address string, iterations, chunkCnt, payloadSize int, stats *benchmark.Stats) (<-chan int, func()) {
 	stub := BenchmarkClient(address)
 	payload := make([]byte, payloadSize)
 	for i := range payload {
 		payload[i] = byte(i & 0xff)
 	}
 
-	if stats != nil {
-		stats.Clear()
-	}
-
-	done, stop := make(chan int, 1), make(chan struct{})
+	stop := make(chan struct{})
 	stopped := func() bool {
 		select {
 		case <-stop:
@@ -84,6 +72,7 @@
 			return false
 		}
 	}
+	done := make(chan int, 1)
 
 	if b.N > 0 {
 		// 2 for round trip of each payload.
@@ -145,9 +134,7 @@
 			elapsed := time.Since(start)
 			b.StopTimer()
 
-			if stats != nil {
-				stats.Add(elapsed)
-			}
+			stats.Add(elapsed)
 		}
 
 		done <- n
diff --git a/runtimes/google/ipc/benchmarks/glob/README.txt b/runtimes/google/ipc/benchmark/glob/README.txt
similarity index 100%
rename from runtimes/google/ipc/benchmarks/glob/README.txt
rename to runtimes/google/ipc/benchmark/glob/README.txt
diff --git a/runtimes/google/ipc/benchmarks/glob/doc.go b/runtimes/google/ipc/benchmark/glob/doc.go
similarity index 100%
rename from runtimes/google/ipc/benchmarks/glob/doc.go
rename to runtimes/google/ipc/benchmark/glob/doc.go
diff --git a/runtimes/google/ipc/benchmarks/glob/glob_test.go b/runtimes/google/ipc/benchmark/glob/glob_test.go
similarity index 100%
rename from runtimes/google/ipc/benchmarks/glob/glob_test.go
rename to runtimes/google/ipc/benchmark/glob/glob_test.go
diff --git a/runtimes/google/ipc/benchmarks/server.go b/runtimes/google/ipc/benchmark/server.go
similarity index 88%
rename from runtimes/google/ipc/benchmarks/server.go
rename to runtimes/google/ipc/benchmark/server.go
index 5e4ebdb..3a55f31 100644
--- a/runtimes/google/ipc/benchmarks/server.go
+++ b/runtimes/google/ipc/benchmark/server.go
@@ -1,7 +1,7 @@
-package benchmarks
+package benchmark
 
 import (
-	sflag "v.io/core/veyron/security/flag"
+	"v.io/core/veyron/security/flag"
 
 	"v.io/core/veyron2"
 	"v.io/core/veyron2/ipc"
@@ -41,7 +41,7 @@
 		vlog.Fatalf("Listen failed: %v", err)
 	}
 
-	if err := server.Serve("", BenchmarkServer(&impl{}), sflag.NewAuthorizerOrDie()); err != nil {
+	if err := server.Serve("", BenchmarkServer(&impl{}), flag.NewAuthorizerOrDie()); err != nil {
 		vlog.Fatalf("Serve failed: %v", err)
 	}
 	return naming.JoinAddressName(eps[0].String(), ""), func() {
diff --git a/runtimes/google/ipc/benchmarks/service.vdl b/runtimes/google/ipc/benchmark/service.vdl
similarity index 95%
rename from runtimes/google/ipc/benchmarks/service.vdl
rename to runtimes/google/ipc/benchmark/service.vdl
index d6ac0e8..3f42b77 100644
--- a/runtimes/google/ipc/benchmarks/service.vdl
+++ b/runtimes/google/ipc/benchmark/service.vdl
@@ -1,6 +1,6 @@
 // package benchmark provides simple tools to measure the performance of the
 // IPC system.
-package benchmarks
+package benchmark
 
 import (
 	"v.io/core/veyron2/services/security/access"
diff --git a/runtimes/google/ipc/benchmarks/service.vdl.go b/runtimes/google/ipc/benchmark/service.vdl.go
similarity index 99%
rename from runtimes/google/ipc/benchmarks/service.vdl.go
rename to runtimes/google/ipc/benchmark/service.vdl.go
index 6613195..a2485f8 100644
--- a/runtimes/google/ipc/benchmarks/service.vdl.go
+++ b/runtimes/google/ipc/benchmark/service.vdl.go
@@ -3,7 +3,7 @@
 
 // package benchmark provides simple tools to measure the performance of the
 // IPC system.
-package benchmarks
+package benchmark
 
 import (
 	"v.io/core/veyron2/services/security/access"
@@ -268,7 +268,7 @@
 // descBenchmark hides the desc to keep godoc clean.
 var descBenchmark = __ipc.InterfaceDesc{
 	Name:    "Benchmark",
-	PkgPath: "v.io/core/veyron/runtimes/google/ipc/benchmarks",
+	PkgPath: "v.io/core/veyron/runtimes/google/ipc/benchmark",
 	Methods: []__ipc.MethodDesc{
 		{
 			Name: "Echo",
diff --git a/runtimes/google/ipc/benchmarks/README.txt b/runtimes/google/ipc/benchmarks/README.txt
deleted file mode 100644
index e2edd4f..0000000
--- a/runtimes/google/ipc/benchmarks/README.txt
+++ /dev/null
@@ -1,155 +0,0 @@
-This directory contains code uses to measure the performance of the Veyron IPC
-stack.
-
-================================================================================
-
-The ipc_test.go file uses GO's testing package to run benchmarks. Each
-benchmark involves one server and one client. The server has two very simple
-methods that echo the data received from the client back to the client.
-
-client ---- Echo(payload) ----> server
-client <--- return payload ---- server
-
-There are two versions of the Echo method:
- - Echo(payload []byte) ([]byte], error)
- - EchoStream() <[]byte,[]byte> error
-
-The first benchmarks use the non-streaming version of Echo with a varying
-payload size. The second benchmarks use the streaming version with varying
-number of chunks and payload sizes. The third one is for measuring the
-performance with multiple clients hosted in the same process.
-
-All these benchmarks create a VC before measurements begin. So, the VC creation
-overhead is excluded.
-
-$ veyron go test -test.bench=. -timeout=1h -test.cpu=1 -test.benchtime=5s \
-  veyron/runtimes/google/ipc/benchmarks
-
-Benchmark____1B     2000           5144219 ns/op           0.00 MB/s
-Benchmark___10B     2000           5526448 ns/op           0.00 MB/s
-Benchmark___1KB     2000           4528221 ns/op           0.44 MB/s
-Benchmark_100KB     1000           7569096 ns/op          26.42 MB/s
-Benchmark____1_chunk_____1B         1000           8945290 ns/op           0.00 MB/s
-Benchmark____1_chunk____10B         1000           9711084 ns/op           0.00 MB/s
-Benchmark____1_chunk____1KB         1000           8541689 ns/op           0.23 MB/s
-Benchmark____1_chunk___10KB         1000           8972995 ns/op           2.23 MB/s
-Benchmark___10_chunks____1B         1000          13114807 ns/op           0.00 MB/s
-Benchmark___10_chunks___10B         1000          13219493 ns/op           0.02 MB/s
-Benchmark___10_chunks___1KB         1000          13292236 ns/op           1.50 MB/s
-Benchmark___10_chunks__10KB          500          15733197 ns/op          12.71 MB/s
-Benchmark__100_chunks____1B          500          45078939 ns/op           0.00 MB/s
-Benchmark__100_chunks___10B          200          49113585 ns/op           0.04 MB/s
-Benchmark__100_chunks___1KB          100          57982457 ns/op           3.45 MB/s
-Benchmark__100_chunks__10KB          100          81632487 ns/op          24.50 MB/s
-Benchmark__per_chunk____1B         50000            357880 ns/op           0.01 MB/s
-Benchmark__per_chunk___10B         20000            476941 ns/op           0.04 MB/s
-Benchmark__per_chunk___1KB         10000            806491 ns/op           2.48 MB/s
-Benchmark__per_chunk__10KB         10000           1185081 ns/op          16.88 MB/s
-Benchmark____1B_mux___10_chunks___10B       1000          20235386 ns/op           0.00 MB/s
-Benchmark____1B_mux___10_chunks___1KB        500          21346428 ns/op           0.00 MB/s
-Benchmark____1B_mux__100_chunks___10B        100          72942436 ns/op           0.00 MB/s
-Benchmark____1B_mux__100_chunks___1KB        100          81538481 ns/op           0.00 MB/s
-
-'Benchmark___1KB' shows that it takes an average of 4.528 ms to
-execute a simple Echo RPC with a 1 KB payload.
-
-'Benchmark___10_chunks___1KB' shows that a streaming RPC with the
-same payload (i.e. 10 chunks of 1 KB) takes about 13.292 ms on average.
-
-'Benchmark__per_chunk___1KB' shows that sending a stream of 1 KB chunks
-takes an average of 0.806 ms per chunk.
-
-'Benchmark____1B_mux___10_chunks___1KB' shows that it takes an average
-of 21.346 ms to execute a simple Echo RPC with a 1 B payload while streaming
-10 chunks of 1 KB payloads continuously in the same process.
-
-bm/main.go does the same benchmarks as ipc_test.go but with more varying
-configurations and optional histogram outputs.
-
-$ veyron go run veyron/runtimes/google/ipc/benchmarks/bm/main.go \
-  -test.cpu=1,2 -test.benchtime=5s -histogram
-
-RESULTS.txt has the latest benchmark results with main.go
-
-================================================================================
-
-bmserver/main.go and bmclient/main.go are simple command-line tools to run the
-benchmark server and client as separate processes. Unlike the benchmarks above,
-this test includes the startup cost of name resolution, creating the VC, etc. in
-the first RPC.
-
-$ veyron go run veyron/runtimes/google/ipc/benchmarks/bmserver/main.go \
-  -veyron.tcp.address=localhost:8888 -acl='{"In":{"...":"R"}}'
-
-(In a different shell)
-$ veyron go run veyron/runtimes/google/ipc/benchmarks/bmclient/main.go \
-  -server=/localhost:8888 -iterations=100 -chunk_count=0 -payload_size=10
-iterations: 100  chunk_count: 0  payload_size: 10
-elapsed time: 619.75741ms
-Histogram (unit: ms)
-Count: 100  Min: 4  Max: 54  Avg: 5.65
-------------------------------------------------------------
-[  4,   5)   42   42.0%   42.0%  ####
-[  5,   6)   32   32.0%   74.0%  ###
-[  6,   7)    8    8.0%   82.0%  #
-[  7,   9)   13   13.0%   95.0%  #
-[  9,  11)    3    3.0%   98.0%  
-[ 11,  14)    1    1.0%   99.0%  
-[ 14,  18)    0    0.0%   99.0%  
-[ 18,  24)    0    0.0%   99.0%  
-[ 24,  32)    0    0.0%   99.0%  
-[ 32,  42)    0    0.0%   99.0%  
-[ 42,  55)    1    1.0%  100.0%  
-[ 55,  72)    0    0.0%  100.0%  
-[ 72,  94)    0    0.0%  100.0%  
-[ 94, 123)    0    0.0%  100.0%  
-[123, 161)    0    0.0%  100.0%  
-[161, 211)    0    0.0%  100.0%  
-[211, inf)    0    0.0%  100.0%  
-
-
-On a Raspberry Pi, everything is much slower. The same tests show the following
-results:
-
-$ ./benchmarks.test -test.bench=. -test.cpu=1 -test.benchtime=5s 2>/dev/null
-PASS
-Benchmark____1B             500          21316148 ns/op
-Benchmark___10B             500          23304638 ns/op
-Benchmark__100B             500          21860446 ns/op
-Benchmark___1KB             500          24000346 ns/op
-Benchmark__10KB             200          37530575 ns/op
-Benchmark_100KB             100         136243310 ns/op
-Benchmark_N_RPCs____1_chunk_____1B           500          19957506 ns/op
-Benchmark_N_RPCs____1_chunk____10B           500          22868392 ns/op
-Benchmark_N_RPCs____1_chunk___100B           500          19635412 ns/op
-Benchmark_N_RPCs____1_chunk____1KB           500          22572190 ns/op
-Benchmark_N_RPCs____1_chunk___10KB           500          37570948 ns/op
-Benchmark_N_RPCs___10_chunks___1KB           100          51670740 ns/op
-Benchmark_N_RPCs__100_chunks___1KB            50         364938740 ns/op
-Benchmark_N_RPCs_1000_chunks___1KB             2        3586374500 ns/op
-Benchmark_1_RPC_N_chunks_____1B    10000           1034042 ns/op
-Benchmark_1_RPC_N_chunks____10B     5000           1894875 ns/op
-Benchmark_1_RPC_N_chunks___100B     5000           2857289 ns/op
-Benchmark_1_RPC_N_chunks____1KB     5000           6465839 ns/op
-Benchmark_1_RPC_N_chunks___10KB      100          80019430 ns/op
-Benchmark_1_RPC_N_chunks__100KB Killed
-
-The simple 1 KB RPCs take an average of 24 ms. The streaming equivalent takes
-about 22 ms, and streaming many 1 KB chunks takes about 6.5 ms per chunk.
-
-
-$ ./bmserver --address=localhost:8888 --acl='{"...":"A"}'
-
-$ ./bmclient --server=/localhost:8888 --count=10 --payload_size=1000
-CallEcho 0 2573406000
-CallEcho 1 44669000
-CallEcho 2 54442000
-CallEcho 3 33934000
-CallEcho 4 47985000
-CallEcho 5 61324000
-CallEcho 6 51654000
-CallEcho 7 47043000
-CallEcho 8 44995000
-CallEcho 9 53166000
-
-On the pi, the first RPC takes ~2.5 sec to execute.
diff --git a/runtimes/google/ipc/benchmarks/RESULTS.txt b/runtimes/google/ipc/benchmarks/RESULTS.txt
deleted file mode 100644
index 979b2ac..0000000
--- a/runtimes/google/ipc/benchmarks/RESULTS.txt
+++ /dev/null
@@ -1,2140 +0,0 @@
-Date: 12/14/2014
-Platform: Intel(R) Xeon(R) CPU E5-2689 0 @ 2.60GHz,  66114888KB Memory
-
-$ veyron go run veyron/runtimes/google/ipc/benchmarks/bm/main.go \
-  -test.cpu=1,2 -test.benchtime=5s -histogram
-
-Benchmark____1B     3000           2260153 ns/op           0.00 MB/s
-Benchmark____1B-2           3000           2362339 ns/op           0.00 MB/s
-Benchmark___10B     3000           2595581 ns/op           0.01 MB/s
-Benchmark___10B-2           3000           2372671 ns/op           0.01 MB/s
-Benchmark__100B     3000           2690733 ns/op           0.07 MB/s
-Benchmark__100B-2           3000           2419120 ns/op           0.08 MB/s
-Benchmark___1KB     3000           2498211 ns/op           0.80 MB/s
-Benchmark___1KB-2           3000           2244818 ns/op           0.89 MB/s
-Benchmark__10KB     3000           2740536 ns/op           7.30 MB/s
-Benchmark__10KB-2           3000           2394824 ns/op           8.35 MB/s
-Benchmark_100KB     2000           5581491 ns/op          35.83 MB/s
-Benchmark_100KB-2           2000           4127286 ns/op          48.46 MB/s
-
-Benchmark____1_chunk_____1B         3000           2744128 ns/op           0.00 MB/s
-Benchmark____1_chunk_____1B-2       3000           2347418 ns/op           0.00 MB/s
-Benchmark____1_chunk____10B         3000           2857309 ns/op           0.01 MB/s
-Benchmark____1_chunk____10B-2       3000           2363346 ns/op           0.01 MB/s
-Benchmark____1_chunk___100B         3000           2922993 ns/op           0.07 MB/s
-Benchmark____1_chunk___100B-2       3000           2558699 ns/op           0.08 MB/s
-Benchmark____1_chunk____1KB         3000           2646432 ns/op           0.76 MB/s
-Benchmark____1_chunk____1KB-2       3000           2400649 ns/op           0.83 MB/s
-Benchmark____1_chunk___10KB         3000           2954627 ns/op           6.77 MB/s
-Benchmark____1_chunk___10KB-2       3000           2546084 ns/op           7.86 MB/s
-Benchmark____1_chunk__100KB         2000           5517042 ns/op          36.25 MB/s
-Benchmark____1_chunk__100KB-2       2000           4157872 ns/op          48.10 MB/s
-Benchmark___10_chunks____1B         2000           4177247 ns/op           0.00 MB/s
-Benchmark___10_chunks____1B-2       2000           3432532 ns/op           0.01 MB/s
-Benchmark___10_chunks___10B         2000           4664935 ns/op           0.04 MB/s
-Benchmark___10_chunks___10B-2       2000           3548029 ns/op           0.06 MB/s
-Benchmark___10_chunks__100B         2000           4845710 ns/op           0.41 MB/s
-Benchmark___10_chunks__100B-2       2000           3658666 ns/op           0.55 MB/s
-Benchmark___10_chunks___1KB         2000           4971196 ns/op           4.02 MB/s
-Benchmark___10_chunks___1KB-2       2000           3662827 ns/op           5.46 MB/s
-Benchmark___10_chunks__10KB         1000           7533684 ns/op          26.55 MB/s
-Benchmark___10_chunks__10KB-2       2000           4922363 ns/op          40.63 MB/s
-Benchmark___10_chunks_100KB          200          31539312 ns/op          63.41 MB/s
-Benchmark___10_chunks_100KB-2        500          18574440 ns/op         107.67 MB/s
-Benchmark__100_chunks____1B          500          18036549 ns/op           0.01 MB/s
-Benchmark__100_chunks____1B-2       1000          12395699 ns/op           0.02 MB/s
-Benchmark__100_chunks___10B          300          20669375 ns/op           0.10 MB/s
-Benchmark__100_chunks___10B-2        500          12634978 ns/op           0.16 MB/s
-Benchmark__100_chunks__100B          300          23164692 ns/op           0.86 MB/s
-Benchmark__100_chunks__100B-2        500          13821225 ns/op           1.45 MB/s
-Benchmark__100_chunks___1KB          300          26071439 ns/op           7.67 MB/s
-Benchmark__100_chunks___1KB-2        500          15738134 ns/op          12.71 MB/s
-Benchmark__100_chunks__10KB          100          50248311 ns/op          39.80 MB/s
-Benchmark__100_chunks__10KB-2        300          28614761 ns/op          69.89 MB/s
-Benchmark__100_chunks_100KB           30         272889576 ns/op          73.29 MB/s
-Benchmark__100_chunks_100KB-2         50         149680912 ns/op         133.62 MB/s
-Benchmark___1K_chunks____1B          100         111621410 ns/op           0.02 MB/s
-Benchmark___1K_chunks____1B-2        100         103311101 ns/op           0.02 MB/s
-Benchmark___1K_chunks___10B           50         189580683 ns/op           0.11 MB/s
-Benchmark___1K_chunks___10B-2        100         107068429 ns/op           0.19 MB/s
-Benchmark___1K_chunks__100B           30         223128293 ns/op           0.90 MB/s
-Benchmark___1K_chunks__100B-2         50         125690815 ns/op           1.59 MB/s
-Benchmark___1K_chunks___1KB           30         251956982 ns/op           7.94 MB/s
-Benchmark___1K_chunks___1KB-2         50         144214400 ns/op          13.87 MB/s
-Benchmark___1K_chunks__10KB           20         474946063 ns/op          42.11 MB/s
-Benchmark___1K_chunks__10KB-2         30         267531367 ns/op          74.76 MB/s
-Benchmark___1K_chunks_100KB            2        2675372295 ns/op          74.76 MB/s
-Benchmark___1K_chunks_100KB-2          5        1421481350 ns/op         140.70 MB/s
-
-Benchmark__per_chunk____1B         50000            163939 ns/op           0.01 MB/s
-Benchmark__per_chunk____1B-2       50000            118409 ns/op           0.02 MB/s
-Benchmark__per_chunk___10B         20000            321908 ns/op           0.06 MB/s
-Benchmark__per_chunk___10B-2       50000            176818 ns/op           0.11 MB/s
-Benchmark__per_chunk__100B         20000            411514 ns/op           0.49 MB/s
-Benchmark__per_chunk__100B-2       30000            231565 ns/op           0.86 MB/s
-Benchmark__per_chunk___1KB         20000            423999 ns/op           4.72 MB/s
-Benchmark__per_chunk___1KB-2       30000            248721 ns/op           8.04 MB/s
-Benchmark__per_chunk__10KB         10000            631536 ns/op          31.67 MB/s
-Benchmark__per_chunk__10KB-2       20000            346868 ns/op          57.66 MB/s
-Benchmark__per_chunk_100KB          3000           2613430 ns/op          76.53 MB/s
-Benchmark__per_chunk_100KB-2        5000           1369809 ns/op         146.01 MB/s
-
-Benchmark___10B_mux__100_chunks___10B        500          18817141 ns/op           0.00 MB/s
-Benchmark___10B_mux__100_chunks___10B-2     1000           7104449 ns/op           0.00 MB/s
-Benchmark___10B_mux__100_chunks__100B        300          21167617 ns/op           0.00 MB/s
-Benchmark___10B_mux__100_chunks__100B-2     1000           8372251 ns/op           0.00 MB/s
-Benchmark___10B_mux__100_chunks___1KB        300          22817830 ns/op           0.00 MB/s
-Benchmark___10B_mux__100_chunks___1KB-2     1000           8831943 ns/op           0.00 MB/s
-Benchmark___10B_mux___1K_chunks___10B        100         123136622 ns/op           0.00 MB/s
-Benchmark___10B_mux___1K_chunks___10B-2      300          22274569 ns/op           0.00 MB/s
-Benchmark___10B_mux___1K_chunks__100B        100         143814971 ns/op           0.00 MB/s
-Benchmark___10B_mux___1K_chunks__100B-2      200          34125016 ns/op           0.00 MB/s
-Benchmark___10B_mux___1K_chunks___1KB        100         136987808 ns/op           0.00 MB/s
-Benchmark___10B_mux___1K_chunks___1KB-2      200          35831221 ns/op           0.00 MB/s
-Benchmark__100B_mux__100_chunks___10B        500          20748811 ns/op           0.01 MB/s
-Benchmark__100B_mux__100_chunks___10B-2     1000           7604070 ns/op           0.03 MB/s
-Benchmark__100B_mux__100_chunks__100B        300          21922577 ns/op           0.01 MB/s
-Benchmark__100B_mux__100_chunks__100B-2     1000           9164254 ns/op           0.02 MB/s
-Benchmark__100B_mux__100_chunks___1KB        300          23892634 ns/op           0.01 MB/s
-Benchmark__100B_mux__100_chunks___1KB-2     1000           9288578 ns/op           0.02 MB/s
-Benchmark__100B_mux___1K_chunks___10B        100         120357166 ns/op           0.00 MB/s
-Benchmark__100B_mux___1K_chunks___10B-2      300          23110788 ns/op           0.01 MB/s
-Benchmark__100B_mux___1K_chunks__100B        100         146211502 ns/op           0.00 MB/s
-Benchmark__100B_mux___1K_chunks__100B-2      200          36485527 ns/op           0.01 MB/s
-Benchmark__100B_mux___1K_chunks___1KB        100         145242261 ns/op           0.00 MB/s
-Benchmark__100B_mux___1K_chunks___1KB-2      200          37420006 ns/op           0.01 MB/s
-
-
-% The followings are the full output with histograms.
-
-================================================================================
-Echo RPC
-================================================================================
-Benchmark____1B	    3000	   2260153 ns/op	   0.00 MB/s
-Histogram (unit: ms)
-Count: 3000  Min: 1  Max: 3  Avg: 1.54
-------------------------------------------------------------
-[  1,   2)  1754   58.5%   58.5%  ######
-[  2,   3)   864   28.8%   87.3%  ###
-[  3,   4)   382   12.7%  100.0%  #
-[  4,   5)     0    0.0%  100.0%  
-[  5,   6)     0    0.0%  100.0%  
-[  6,   7)     0    0.0%  100.0%  
-[  7,   8)     0    0.0%  100.0%  
-[  8,   9)     0    0.0%  100.0%  
-[  9,  10)     0    0.0%  100.0%  
-[ 10,  11)     0    0.0%  100.0%  
-[ 11,  12)     0    0.0%  100.0%  
-[ 12,  13)     0    0.0%  100.0%  
-[ 13,  14)     0    0.0%  100.0%  
-[ 14,  15)     0    0.0%  100.0%  
-[ 15,  16)     0    0.0%  100.0%  
-[ 16,  17)     0    0.0%  100.0%  
-[ 17, inf)     0    0.0%  100.0%  
-Benchmark____1B-2	    3000	   2362339 ns/op	   0.00 MB/s
-Histogram (unit: ms)
-Count: 3000  Min: 1  Max: 4  Avg: 1.98
-------------------------------------------------------------
-[  1,   2)   608   20.3%   20.3%  ##
-[  2,   3)  1864   62.1%   82.4%  ######
-[  3,   4)   520   17.3%   99.7%  ##
-[  4,   5)     8    0.3%  100.0%  
-[  5,   6)     0    0.0%  100.0%  
-[  6,   7)     0    0.0%  100.0%  
-[  7,   8)     0    0.0%  100.0%  
-[  8,   9)     0    0.0%  100.0%  
-[  9,  10)     0    0.0%  100.0%  
-[ 10,  11)     0    0.0%  100.0%  
-[ 11,  13)     0    0.0%  100.0%  
-[ 13,  15)     0    0.0%  100.0%  
-[ 15,  17)     0    0.0%  100.0%  
-[ 17,  19)     0    0.0%  100.0%  
-[ 19,  21)     0    0.0%  100.0%  
-[ 21,  23)     0    0.0%  100.0%  
-[ 23, inf)     0    0.0%  100.0%  
-Benchmark___10B	    3000	   2595581 ns/op	   0.01 MB/s
-Histogram (unit: ms)
-Count: 3000  Min: 2  Max: 5  Avg: 2.37
-------------------------------------------------------------
-[  2,   3)  2459   82.0%   82.0%  ########
-[  3,   4)    45    1.5%   83.5%  
-[  4,   5)   437   14.6%   98.0%  #
-[  5,   6)    59    2.0%  100.0%  
-[  6,   7)     0    0.0%  100.0%  
-[  7,   8)     0    0.0%  100.0%  
-[  8,   9)     0    0.0%  100.0%  
-[  9,  10)     0    0.0%  100.0%  
-[ 10,  11)     0    0.0%  100.0%  
-[ 11,  12)     0    0.0%  100.0%  
-[ 12,  14)     0    0.0%  100.0%  
-[ 14,  16)     0    0.0%  100.0%  
-[ 16,  18)     0    0.0%  100.0%  
-[ 18,  20)     0    0.0%  100.0%  
-[ 20,  22)     0    0.0%  100.0%  
-[ 22,  24)     0    0.0%  100.0%  
-[ 24, inf)     0    0.0%  100.0%  
-Benchmark___10B-2	    3000	   2372671 ns/op	   0.01 MB/s
-Histogram (unit: ms)
-Count: 3000  Min: 1  Max: 5  Avg: 1.93
-------------------------------------------------------------
-[  1,   2)   866   28.9%   28.9%  ###
-[  2,   3)  1691   56.4%   85.2%  ######
-[  3,   4)   233    7.8%   93.0%  #
-[  4,   5)   201    6.7%   99.7%  #
-[  5,   6)     9    0.3%  100.0%  
-[  6,   7)     0    0.0%  100.0%  
-[  7,   8)     0    0.0%  100.0%  
-[  8,   9)     0    0.0%  100.0%  
-[  9,  11)     0    0.0%  100.0%  
-[ 11,  13)     0    0.0%  100.0%  
-[ 13,  15)     0    0.0%  100.0%  
-[ 15,  17)     0    0.0%  100.0%  
-[ 17,  20)     0    0.0%  100.0%  
-[ 20,  23)     0    0.0%  100.0%  
-[ 23,  26)     0    0.0%  100.0%  
-[ 26,  29)     0    0.0%  100.0%  
-[ 29, inf)     0    0.0%  100.0%  
-Benchmark__100B	    3000	   2690733 ns/op	   0.07 MB/s
-Histogram (unit: ms)
-Count: 3000  Min: 2  Max: 7  Avg: 2.48
-------------------------------------------------------------
-[  2,   3)  2544   84.8%   84.8%  ########
-[  3,   4)    82    2.7%   87.5%  
-[  4,   5)     0    0.0%   87.5%  
-[  5,   6)   146    4.9%   92.4%  
-[  6,   7)   226    7.5%   99.9%  #
-[  7,   8)     2    0.1%  100.0%  
-[  8,   9)     0    0.0%  100.0%  
-[  9,  11)     0    0.0%  100.0%  
-[ 11,  13)     0    0.0%  100.0%  
-[ 13,  15)     0    0.0%  100.0%  
-[ 15,  17)     0    0.0%  100.0%  
-[ 17,  20)     0    0.0%  100.0%  
-[ 20,  23)     0    0.0%  100.0%  
-[ 23,  27)     0    0.0%  100.0%  
-[ 27,  31)     0    0.0%  100.0%  
-[ 31,  35)     0    0.0%  100.0%  
-[ 35, inf)     0    0.0%  100.0%  
-Benchmark__100B-2	    3000	   2419120 ns/op	   0.08 MB/s
-Histogram (unit: ms)
-Count: 3000  Min: 1  Max: 6  Avg: 2.05
-------------------------------------------------------------
-[  1,   2)   647   21.6%   21.6%  ##
-[  2,   3)  2027   67.6%   89.1%  #######
-[  3,   4)     1    0.0%   89.2%  
-[  4,   5)   184    6.1%   95.3%  #
-[  5,   6)   128    4.3%   99.6%  
-[  6,   7)    13    0.4%  100.0%  
-[  7,   8)     0    0.0%  100.0%  
-[  8,  10)     0    0.0%  100.0%  
-[ 10,  12)     0    0.0%  100.0%  
-[ 12,  14)     0    0.0%  100.0%  
-[ 14,  16)     0    0.0%  100.0%  
-[ 16,  19)     0    0.0%  100.0%  
-[ 19,  22)     0    0.0%  100.0%  
-[ 22,  26)     0    0.0%  100.0%  
-[ 26,  30)     0    0.0%  100.0%  
-[ 30,  34)     0    0.0%  100.0%  
-[ 34, inf)     0    0.0%  100.0%  
-Benchmark___1KB	    3000	   2498211 ns/op	   0.80 MB/s
-Histogram (unit: ms)
-Count: 3000  Min: 1  Max: 10  Avg: 1.76
-------------------------------------------------------------
-[  1,   2)  2191   73.0%   73.0%  #######
-[  2,   3)   449   15.0%   88.0%  #
-[  3,   4)    75    2.5%   90.5%  
-[  4,   5)     3    0.1%   90.6%  
-[  5,   6)     6    0.2%   90.8%  
-[  6,   8)   240    8.0%   98.8%  #
-[  8,  10)    35    1.2%  100.0%  
-[ 10,  12)     1    0.0%  100.0%  
-[ 12,  15)     0    0.0%  100.0%  
-[ 15,  18)     0    0.0%  100.0%  
-[ 18,  22)     0    0.0%  100.0%  
-[ 22,  27)     0    0.0%  100.0%  
-[ 27,  32)     0    0.0%  100.0%  
-[ 32,  38)     0    0.0%  100.0%  
-[ 38,  45)     0    0.0%  100.0%  
-[ 45,  54)     0    0.0%  100.0%  
-[ 54, inf)     0    0.0%  100.0%  
-Benchmark___1KB-2	    3000	   2244818 ns/op	   0.89 MB/s
-Histogram (unit: ms)
-Count: 3000  Min: 1  Max: 7  Avg: 1.62
-------------------------------------------------------------
-[  1,   2)  1949   65.0%   65.0%  ######
-[  2,   3)   795   26.5%   91.5%  ###
-[  3,   4)     0    0.0%   91.5%  
-[  4,   5)    63    2.1%   93.6%  
-[  5,   6)   112    3.7%   97.3%  
-[  6,   7)    72    2.4%   99.7%  
-[  7,   9)     9    0.3%  100.0%  
-[  9,  11)     0    0.0%  100.0%  
-[ 11,  13)     0    0.0%  100.0%  
-[ 13,  15)     0    0.0%  100.0%  
-[ 15,  18)     0    0.0%  100.0%  
-[ 18,  21)     0    0.0%  100.0%  
-[ 21,  25)     0    0.0%  100.0%  
-[ 25,  29)     0    0.0%  100.0%  
-[ 29,  34)     0    0.0%  100.0%  
-[ 34,  40)     0    0.0%  100.0%  
-[ 40, inf)     0    0.0%  100.0%  
-Benchmark__10KB	    3000	   2740536 ns/op	   7.30 MB/s
-Histogram (unit: ms)
-Count: 3000  Min: 2  Max: 10  Avg: 2.62
-------------------------------------------------------------
-[  2,   3)  2652   88.4%   88.4%  #########
-[  3,   4)    72    2.4%   90.8%  
-[  4,   5)     0    0.0%   90.8%  
-[  5,   6)     0    0.0%   90.8%  
-[  6,   7)     0    0.0%   90.8%  
-[  7,   9)    93    3.1%   93.9%  
-[  9,  11)   183    6.1%  100.0%  #
-[ 11,  13)     0    0.0%  100.0%  
-[ 13,  16)     0    0.0%  100.0%  
-[ 16,  19)     0    0.0%  100.0%  
-[ 19,  23)     0    0.0%  100.0%  
-[ 23,  27)     0    0.0%  100.0%  
-[ 27,  32)     0    0.0%  100.0%  
-[ 32,  38)     0    0.0%  100.0%  
-[ 38,  44)     0    0.0%  100.0%  
-[ 44,  52)     0    0.0%  100.0%  
-[ 52, inf)     0    0.0%  100.0%  
-Benchmark__10KB-2	    3000	   2394824 ns/op	   8.35 MB/s
-Histogram (unit: ms)
-Count: 3000  Min: 1  Max: 8  Avg: 1.84
-------------------------------------------------------------
-[  1,   2)  1531   51.0%   51.0%  #####
-[  2,   3)  1214   40.5%   91.5%  ####
-[  3,   4)     0    0.0%   91.5%  
-[  4,   5)     0    0.0%   91.5%  
-[  5,   6)    83    2.8%   94.3%  
-[  6,   7)    69    2.3%   96.6%  
-[  7,   9)   103    3.4%  100.0%  
-[  9,  11)     0    0.0%  100.0%  
-[ 11,  13)     0    0.0%  100.0%  
-[ 13,  16)     0    0.0%  100.0%  
-[ 16,  19)     0    0.0%  100.0%  
-[ 19,  23)     0    0.0%  100.0%  
-[ 23,  27)     0    0.0%  100.0%  
-[ 27,  32)     0    0.0%  100.0%  
-[ 32,  38)     0    0.0%  100.0%  
-[ 38,  44)     0    0.0%  100.0%  
-[ 44, inf)     0    0.0%  100.0%  
-Benchmark_100KB	    2000	   5581491 ns/op	  35.83 MB/s
-Histogram (unit: ms)
-Count: 2000  Min: 3  Max: 15  Avg: 4.93
-------------------------------------------------------------
-[  3,   4)  1253   62.7%   62.7%  ######
-[  4,   5)   259   13.0%   75.6%  #
-[  5,   6)   124    6.2%   81.8%  #
-[  6,   7)     1    0.1%   81.9%  
-[  7,   8)     0    0.0%   81.9%  
-[  8,  10)     0    0.0%   81.9%  
-[ 10,  12)    84    4.2%   86.1%  
-[ 12,  15)   274   13.7%   99.8%  #
-[ 15,  18)     5    0.2%  100.0%  
-[ 18,  22)     0    0.0%  100.0%  
-[ 22,  27)     0    0.0%  100.0%  
-[ 27,  33)     0    0.0%  100.0%  
-[ 33,  40)     0    0.0%  100.0%  
-[ 40,  48)     0    0.0%  100.0%  
-[ 48,  58)     0    0.0%  100.0%  
-[ 58,  69)     0    0.0%  100.0%  
-[ 69, inf)     0    0.0%  100.0%  
-Benchmark_100KB-2	    2000	   4127286 ns/op	  48.46 MB/s
-Histogram (unit: ms)
-Count: 2000  Min: 2  Max: 10  Avg: 3.78
-------------------------------------------------------------
-[  2,   3)   373   18.7%   18.7%  ##
-[  3,   4)  1286   64.3%   83.0%  ######
-[  4,   5)     0    0.0%   83.0%  
-[  5,   6)     0    0.0%   83.0%  
-[  6,   7)     0    0.0%   83.0%  
-[  7,   9)   116    5.8%   88.8%  #
-[  9,  11)   225   11.2%  100.0%  #
-[ 11,  13)     0    0.0%  100.0%  
-[ 13,  16)     0    0.0%  100.0%  
-[ 16,  19)     0    0.0%  100.0%  
-[ 19,  23)     0    0.0%  100.0%  
-[ 23,  27)     0    0.0%  100.0%  
-[ 27,  32)     0    0.0%  100.0%  
-[ 32,  38)     0    0.0%  100.0%  
-[ 38,  44)     0    0.0%  100.0%  
-[ 44,  52)     0    0.0%  100.0%  
-[ 52, inf)     0    0.0%  100.0%  
-
-================================================================================
-Echo streaming RPC
-================================================================================
-Benchmark____1_chunk_____1B	    3000	   2744128 ns/op	   0.00 MB/s
-Histogram (unit: ms)
-Count: 3000  Min: 2  Max: 4  Avg: 2.31
-------------------------------------------------------------
-[  2,   3)  2072   69.1%   69.1%  #######
-[  3,   4)   921   30.7%   99.8%  ###
-[  4,   5)     7    0.2%  100.0%  
-[  5,   6)     0    0.0%  100.0%  
-[  6,   7)     0    0.0%  100.0%  
-[  7,   8)     0    0.0%  100.0%  
-[  8,   9)     0    0.0%  100.0%  
-[  9,  10)     0    0.0%  100.0%  
-[ 10,  11)     0    0.0%  100.0%  
-[ 11,  12)     0    0.0%  100.0%  
-[ 12,  13)     0    0.0%  100.0%  
-[ 13,  14)     0    0.0%  100.0%  
-[ 14,  15)     0    0.0%  100.0%  
-[ 15,  16)     0    0.0%  100.0%  
-[ 16,  17)     0    0.0%  100.0%  
-[ 17,  18)     0    0.0%  100.0%  
-[ 18, inf)     0    0.0%  100.0%  
-Benchmark____1_chunk_____1B-2	    3000	   2347418 ns/op	   0.00 MB/s
-Histogram (unit: ms)
-Count: 3000  Min: 1  Max: 4  Avg: 2.18
-------------------------------------------------------------
-[  1,   2)    46    1.5%    1.5%  
-[  2,   3)  2381   79.4%   80.9%  ########
-[  3,   4)   567   18.9%   99.8%  ##
-[  4,   5)     6    0.2%  100.0%  
-[  5,   6)     0    0.0%  100.0%  
-[  6,   7)     0    0.0%  100.0%  
-[  7,   8)     0    0.0%  100.0%  
-[  8,   9)     0    0.0%  100.0%  
-[  9,  10)     0    0.0%  100.0%  
-[ 10,  11)     0    0.0%  100.0%  
-[ 11,  13)     0    0.0%  100.0%  
-[ 13,  15)     0    0.0%  100.0%  
-[ 15,  17)     0    0.0%  100.0%  
-[ 17,  19)     0    0.0%  100.0%  
-[ 19,  21)     0    0.0%  100.0%  
-[ 21,  23)     0    0.0%  100.0%  
-[ 23, inf)     0    0.0%  100.0%  
-Benchmark____1_chunk____10B	    3000	   2857309 ns/op	   0.01 MB/s
-Histogram (unit: ms)
-Count: 3000  Min: 2  Max: 5  Avg: 2.45
-------------------------------------------------------------
-[  2,   3)  2387   79.6%   79.6%  ########
-[  3,   4)    88    2.9%   82.5%  
-[  4,   5)   303   10.1%   92.6%  #
-[  5,   6)   222    7.4%  100.0%  #
-[  6,   7)     0    0.0%  100.0%  
-[  7,   8)     0    0.0%  100.0%  
-[  8,   9)     0    0.0%  100.0%  
-[  9,  10)     0    0.0%  100.0%  
-[ 10,  11)     0    0.0%  100.0%  
-[ 11,  12)     0    0.0%  100.0%  
-[ 12,  14)     0    0.0%  100.0%  
-[ 14,  16)     0    0.0%  100.0%  
-[ 16,  18)     0    0.0%  100.0%  
-[ 18,  20)     0    0.0%  100.0%  
-[ 20,  22)     0    0.0%  100.0%  
-[ 22,  24)     0    0.0%  100.0%  
-[ 24, inf)     0    0.0%  100.0%  
-Benchmark____1_chunk____10B-2	    3000	   2363346 ns/op	   0.01 MB/s
-Histogram (unit: ms)
-Count: 3000  Min: 1  Max: 5  Avg: 2.18
-------------------------------------------------------------
-[  1,   2)    32    1.1%    1.1%  
-[  2,   3)  2535   84.5%   85.6%  ########
-[  3,   4)   293    9.8%   95.3%  #
-[  4,   5)   139    4.6%  100.0%  
-[  5,   6)     1    0.0%  100.0%  
-[  6,   7)     0    0.0%  100.0%  
-[  7,   8)     0    0.0%  100.0%  
-[  8,   9)     0    0.0%  100.0%  
-[  9,  11)     0    0.0%  100.0%  
-[ 11,  13)     0    0.0%  100.0%  
-[ 13,  15)     0    0.0%  100.0%  
-[ 15,  17)     0    0.0%  100.0%  
-[ 17,  20)     0    0.0%  100.0%  
-[ 20,  23)     0    0.0%  100.0%  
-[ 23,  26)     0    0.0%  100.0%  
-[ 26,  29)     0    0.0%  100.0%  
-[ 29, inf)     0    0.0%  100.0%  
-Benchmark____1_chunk___100B	    3000	   2922993 ns/op	   0.07 MB/s
-Histogram (unit: ms)
-Count: 3000  Min: 2  Max: 7  Avg: 2.50
-------------------------------------------------------------
-[  2,   3)  2527   84.2%   84.2%  ########
-[  3,   4)   106    3.5%   87.8%  
-[  4,   5)     0    0.0%   87.8%  
-[  5,   6)    99    3.3%   91.1%  
-[  6,   7)   255    8.5%   99.6%  #
-[  7,   8)    13    0.4%  100.0%  
-[  8,   9)     0    0.0%  100.0%  
-[  9,  11)     0    0.0%  100.0%  
-[ 11,  13)     0    0.0%  100.0%  
-[ 13,  15)     0    0.0%  100.0%  
-[ 15,  17)     0    0.0%  100.0%  
-[ 17,  20)     0    0.0%  100.0%  
-[ 20,  23)     0    0.0%  100.0%  
-[ 23,  27)     0    0.0%  100.0%  
-[ 27,  31)     0    0.0%  100.0%  
-[ 31,  35)     0    0.0%  100.0%  
-[ 35, inf)     0    0.0%  100.0%  
-Benchmark____1_chunk___100B-2	    3000	   2558699 ns/op	   0.08 MB/s
-Histogram (unit: ms)
-Count: 3000  Min: 1  Max: 6  Avg: 2.28
-------------------------------------------------------------
-[  1,   2)     5    0.2%    0.2%  
-[  2,   3)  2673   89.1%   89.3%  #########
-[  3,   4)     2    0.1%   89.3%  
-[  4,   5)   177    5.9%   95.2%  #
-[  5,   6)    96    3.2%   98.4%  
-[  6,   7)    47    1.6%  100.0%  
-[  7,   8)     0    0.0%  100.0%  
-[  8,  10)     0    0.0%  100.0%  
-[ 10,  12)     0    0.0%  100.0%  
-[ 12,  14)     0    0.0%  100.0%  
-[ 14,  16)     0    0.0%  100.0%  
-[ 16,  19)     0    0.0%  100.0%  
-[ 19,  22)     0    0.0%  100.0%  
-[ 22,  26)     0    0.0%  100.0%  
-[ 26,  30)     0    0.0%  100.0%  
-[ 30,  34)     0    0.0%  100.0%  
-[ 34, inf)     0    0.0%  100.0%  
-Benchmark____1_chunk____1KB	    3000	   2646432 ns/op	   0.76 MB/s
-Histogram (unit: ms)
-Count: 3000  Min: 2  Max: 10  Avg: 2.49
-------------------------------------------------------------
-[  2,   3)  2647   88.2%   88.2%  #########
-[  3,   4)    71    2.4%   90.6%  
-[  4,   5)     4    0.1%   90.7%  
-[  5,   6)     0    0.0%   90.7%  
-[  6,   7)    67    2.2%   93.0%  
-[  7,   9)   209    7.0%   99.9%  #
-[  9,  11)     2    0.1%  100.0%  
-[ 11,  13)     0    0.0%  100.0%  
-[ 13,  16)     0    0.0%  100.0%  
-[ 16,  19)     0    0.0%  100.0%  
-[ 19,  23)     0    0.0%  100.0%  
-[ 23,  27)     0    0.0%  100.0%  
-[ 27,  32)     0    0.0%  100.0%  
-[ 32,  38)     0    0.0%  100.0%  
-[ 38,  44)     0    0.0%  100.0%  
-[ 44,  52)     0    0.0%  100.0%  
-[ 52, inf)     0    0.0%  100.0%  
-Benchmark____1_chunk____1KB-2	    3000	   2400649 ns/op	   0.83 MB/s
-Histogram (unit: ms)
-Count: 3000  Min: 1  Max: 7  Avg: 2.01
-------------------------------------------------------------
-[  1,   2)   864   28.8%   28.8%  ###
-[  2,   3)  1881   62.7%   91.5%  ######
-[  3,   4)     2    0.1%   91.6%  
-[  4,   5)    10    0.3%   91.9%  
-[  5,   6)   127    4.2%   96.1%  
-[  6,   7)    94    3.1%   99.3%  
-[  7,   9)    22    0.7%  100.0%  
-[  9,  11)     0    0.0%  100.0%  
-[ 11,  13)     0    0.0%  100.0%  
-[ 13,  15)     0    0.0%  100.0%  
-[ 15,  18)     0    0.0%  100.0%  
-[ 18,  21)     0    0.0%  100.0%  
-[ 21,  25)     0    0.0%  100.0%  
-[ 25,  29)     0    0.0%  100.0%  
-[ 29,  34)     0    0.0%  100.0%  
-[ 34,  40)     0    0.0%  100.0%  
-[ 40, inf)     0    0.0%  100.0%  
-Benchmark____1_chunk___10KB	    3000	   2954627 ns/op	   6.77 MB/s
-Histogram (unit: ms)
-Count: 3000  Min: 2  Max: 10  Avg: 2.65
-------------------------------------------------------------
-[  2,   3)  2621   87.4%   87.4%  #########
-[  3,   4)    93    3.1%   90.5%  
-[  4,   5)    13    0.4%   90.9%  
-[  5,   6)     0    0.0%   90.9%  
-[  6,   7)     0    0.0%   90.9%  
-[  7,   9)    99    3.3%   94.2%  
-[  9,  11)   174    5.8%  100.0%  #
-[ 11,  13)     0    0.0%  100.0%  
-[ 13,  16)     0    0.0%  100.0%  
-[ 16,  19)     0    0.0%  100.0%  
-[ 19,  23)     0    0.0%  100.0%  
-[ 23,  27)     0    0.0%  100.0%  
-[ 27,  32)     0    0.0%  100.0%  
-[ 32,  38)     0    0.0%  100.0%  
-[ 38,  44)     0    0.0%  100.0%  
-[ 44,  52)     0    0.0%  100.0%  
-[ 52, inf)     0    0.0%  100.0%  
-Benchmark____1_chunk___10KB-2	    3000	   2546084 ns/op	   7.86 MB/s
-Histogram (unit: ms)
-Count: 3000  Min: 1  Max: 8  Avg: 2.25
-------------------------------------------------------------
-[  1,   2)   414   13.8%   13.8%  #
-[  2,   3)  2335   77.8%   91.6%  ########
-[  3,   4)     0    0.0%   91.6%  
-[  4,   5)     0    0.0%   91.6%  
-[  5,   6)    37    1.2%   92.9%  
-[  6,   7)    88    2.9%   95.8%  
-[  7,   9)   126    4.2%  100.0%  
-[  9,  11)     0    0.0%  100.0%  
-[ 11,  13)     0    0.0%  100.0%  
-[ 13,  16)     0    0.0%  100.0%  
-[ 16,  19)     0    0.0%  100.0%  
-[ 19,  23)     0    0.0%  100.0%  
-[ 23,  27)     0    0.0%  100.0%  
-[ 27,  32)     0    0.0%  100.0%  
-[ 32,  38)     0    0.0%  100.0%  
-[ 38,  44)     0    0.0%  100.0%  
-[ 44, inf)     0    0.0%  100.0%  
-Benchmark____1_chunk__100KB	    2000	   5517042 ns/op	  36.25 MB/s
-Histogram (unit: ms)
-Count: 2000  Min: 3  Max: 15  Avg: 4.82
-------------------------------------------------------------
-[  3,   4)  1247   62.4%   62.4%  ######
-[  4,   5)   256   12.8%   75.2%  #
-[  5,   6)   146    7.3%   82.5%  #
-[  6,   7)     0    0.0%   82.5%  
-[  7,   8)     0    0.0%   82.5%  
-[  8,  10)     0    0.0%   82.5%  
-[ 10,  12)   132    6.6%   89.1%  #
-[ 12,  15)   217   10.9%   99.9%  #
-[ 15,  18)     2    0.1%  100.0%  
-[ 18,  22)     0    0.0%  100.0%  
-[ 22,  27)     0    0.0%  100.0%  
-[ 27,  33)     0    0.0%  100.0%  
-[ 33,  40)     0    0.0%  100.0%  
-[ 40,  48)     0    0.0%  100.0%  
-[ 48,  58)     0    0.0%  100.0%  
-[ 58,  69)     0    0.0%  100.0%  
-[ 69, inf)     0    0.0%  100.0%  
-Benchmark____1_chunk__100KB-2	    2000	   4157872 ns/op	  48.10 MB/s
-Histogram (unit: ms)
-Count: 2000  Min: 2  Max: 11  Avg: 3.83
-------------------------------------------------------------
-[  2,   3)   159    8.0%    8.0%  #
-[  3,   4)  1495   74.8%   82.7%  #######
-[  4,   5)    11    0.6%   83.2%  
-[  5,   6)     0    0.0%   83.2%  
-[  6,   7)     0    0.0%   83.2%  
-[  7,   9)   167    8.3%   91.6%  #
-[  9,  11)   166    8.3%   99.9%  #
-[ 11,  13)     2    0.1%  100.0%  
-[ 13,  16)     0    0.0%  100.0%  
-[ 16,  19)     0    0.0%  100.0%  
-[ 19,  23)     0    0.0%  100.0%  
-[ 23,  28)     0    0.0%  100.0%  
-[ 28,  33)     0    0.0%  100.0%  
-[ 33,  39)     0    0.0%  100.0%  
-[ 39,  46)     0    0.0%  100.0%  
-[ 46,  55)     0    0.0%  100.0%  
-[ 55, inf)     0    0.0%  100.0%  
-Benchmark___10_chunks____1B	    2000	   4177247 ns/op	   0.00 MB/s
-Histogram (unit: ms)
-Count: 2000  Min: 2  Max: 17  Avg: 3.75
-------------------------------------------------------------
-[  2,   3)    49    2.5%    2.5%  
-[  3,   4)  1771   88.6%   91.0%  #########
-[  4,   5)     0    0.0%   91.0%  
-[  5,   6)     2    0.1%   91.1%  
-[  6,   8)    42    2.1%   93.2%  
-[  8,  10)     0    0.0%   93.2%  
-[ 10,  12)    33    1.7%   94.9%  
-[ 12,  15)    73    3.7%   98.5%  
-[ 15,  19)    30    1.5%  100.0%  
-[ 19,  24)     0    0.0%  100.0%  
-[ 24,  30)     0    0.0%  100.0%  
-[ 30,  37)     0    0.0%  100.0%  
-[ 37,  45)     0    0.0%  100.0%  
-[ 45,  55)     0    0.0%  100.0%  
-[ 55,  67)     0    0.0%  100.0%  
-[ 67,  81)     0    0.0%  100.0%  
-[ 81, inf)     0    0.0%  100.0%  
-Benchmark___10_chunks____1B-2	    2000	   3432532 ns/op	   0.01 MB/s
-Histogram (unit: ms)
-Count: 2000  Min: 2  Max: 12  Avg: 2.82
-------------------------------------------------------------
-[  2,   3)  1276   63.8%   63.8%  ######
-[  3,   4)   541   27.1%   90.9%  ###
-[  4,   5)    45    2.2%   93.1%  
-[  5,   6)     0    0.0%   93.1%  
-[  6,   7)     0    0.0%   93.1%  
-[  7,   9)    41    2.1%   95.2%  
-[  9,  11)    68    3.4%   98.6%  
-[ 11,  13)    29    1.5%  100.0%  
-[ 13,  16)     0    0.0%  100.0%  
-[ 16,  19)     0    0.0%  100.0%  
-[ 19,  23)     0    0.0%  100.0%  
-[ 23,  28)     0    0.0%  100.0%  
-[ 28,  34)     0    0.0%  100.0%  
-[ 34,  41)     0    0.0%  100.0%  
-[ 41,  49)     0    0.0%  100.0%  
-[ 49,  58)     0    0.0%  100.0%  
-[ 58, inf)     0    0.0%  100.0%  
-Benchmark___10_chunks___10B	    2000	   4664935 ns/op	   0.04 MB/s
-Histogram (unit: ms)
-Count: 2000  Min: 3  Max: 19  Avg: 3.94
-------------------------------------------------------------
-[  3,   4)  1739   87.0%   87.0%  #########
-[  4,   5)    94    4.7%   91.7%  
-[  5,   6)     0    0.0%   91.7%  
-[  6,   7)     9    0.5%   92.1%  
-[  7,   9)    26    1.3%   93.4%  
-[  9,  11)     0    0.0%   93.4%  
-[ 11,  14)    33    1.7%   95.1%  
-[ 14,  17)    63    3.2%   98.2%  
-[ 17,  21)    36    1.8%  100.0%  
-[ 21,  26)     0    0.0%  100.0%  
-[ 26,  32)     0    0.0%  100.0%  
-[ 32,  39)     0    0.0%  100.0%  
-[ 39,  48)     0    0.0%  100.0%  
-[ 48,  59)     0    0.0%  100.0%  
-[ 59,  72)     0    0.0%  100.0%  
-[ 72,  88)     0    0.0%  100.0%  
-[ 88, inf)     0    0.0%  100.0%  
-Benchmark___10_chunks___10B-2	    2000	   3548029 ns/op	   0.06 MB/s
-Histogram (unit: ms)
-Count: 2000  Min: 2  Max: 14  Avg: 3.02
-------------------------------------------------------------
-[  2,   3)   971   48.6%   48.6%  #####
-[  3,   4)   835   41.8%   90.3%  ####
-[  4,   5)    67    3.4%   93.7%  
-[  5,   6)     0    0.0%   93.7%  
-[  6,   7)     0    0.0%   93.7%  
-[  7,   9)    16    0.8%   94.5%  
-[  9,  11)    40    2.0%   96.5%  
-[ 11,  14)    70    3.5%  100.0%  
-[ 14,  17)     1    0.1%  100.0%  
-[ 17,  21)     0    0.0%  100.0%  
-[ 21,  26)     0    0.0%  100.0%  
-[ 26,  32)     0    0.0%  100.0%  
-[ 32,  39)     0    0.0%  100.0%  
-[ 39,  47)     0    0.0%  100.0%  
-[ 47,  57)     0    0.0%  100.0%  
-[ 57,  68)     0    0.0%  100.0%  
-[ 68, inf)     0    0.0%  100.0%  
-Benchmark___10_chunks__100B	    2000	   4845710 ns/op	   0.41 MB/s
-Histogram (unit: ms)
-Count: 2000  Min: 3  Max: 20  Avg: 4.09
-------------------------------------------------------------
-[  3,   4)  1559   78.0%   78.0%  ########
-[  4,   5)   272   13.6%   91.6%  #
-[  5,   6)     1    0.1%   91.6%  
-[  6,   7)     0    0.0%   91.6%  
-[  7,   9)    43    2.1%   93.8%  
-[  9,  11)     1    0.1%   93.8%  
-[ 11,  14)     0    0.0%   93.8%  
-[ 14,  17)    44    2.2%   96.0%  
-[ 17,  21)    80    4.0%  100.0%  
-[ 21,  26)     0    0.0%  100.0%  
-[ 26,  32)     0    0.0%  100.0%  
-[ 32,  39)     0    0.0%  100.0%  
-[ 39,  48)     0    0.0%  100.0%  
-[ 48,  59)     0    0.0%  100.0%  
-[ 59,  73)     0    0.0%  100.0%  
-[ 73,  90)     0    0.0%  100.0%  
-[ 90, inf)     0    0.0%  100.0%  
-Benchmark___10_chunks__100B-2	    2000	   3658666 ns/op	   0.55 MB/s
-Histogram (unit: ms)
-Count: 2000  Min: 2  Max: 14  Avg: 3.26
-------------------------------------------------------------
-[  2,   3)   567   28.4%   28.4%  ###
-[  3,   4)  1240   62.0%   90.4%  ######
-[  4,   5)    68    3.4%   93.8%  
-[  5,   6)     5    0.2%   94.0%  
-[  6,   7)     0    0.0%   94.0%  
-[  7,   9)     0    0.0%   94.0%  
-[  9,  11)    50    2.5%   96.5%  
-[ 11,  14)    62    3.1%   99.6%  
-[ 14,  17)     8    0.4%  100.0%  
-[ 17,  21)     0    0.0%  100.0%  
-[ 21,  26)     0    0.0%  100.0%  
-[ 26,  32)     0    0.0%  100.0%  
-[ 32,  39)     0    0.0%  100.0%  
-[ 39,  47)     0    0.0%  100.0%  
-[ 47,  57)     0    0.0%  100.0%  
-[ 57,  68)     0    0.0%  100.0%  
-[ 68, inf)     0    0.0%  100.0%  
-Benchmark___10_chunks___1KB	    2000	   4971196 ns/op	   4.02 MB/s
-Histogram (unit: ms)
-Count: 2000  Min: 3  Max: 23  Avg: 4.37
-------------------------------------------------------------
-[  3,   4)  1222   61.1%   61.1%  ######
-[  4,   5)   620   31.0%   92.1%  ###
-[  5,   6)     0    0.0%   92.1%  
-[  6,   7)     0    0.0%   92.1%  
-[  7,   9)    31    1.6%   93.7%  
-[  9,  11)     1    0.1%   93.7%  
-[ 11,  14)     0    0.0%   93.7%  
-[ 14,  18)    32    1.6%   95.3%  
-[ 18,  22)    90    4.5%   99.8%  
-[ 22,  28)     4    0.2%  100.0%  
-[ 28,  35)     0    0.0%  100.0%  
-[ 35,  43)     0    0.0%  100.0%  
-[ 43,  53)     0    0.0%  100.0%  
-[ 53,  66)     0    0.0%  100.0%  
-[ 66,  82)     0    0.0%  100.0%  
-[ 82, 101)     0    0.0%  100.0%  
-[101, inf)     0    0.0%  100.0%  
-Benchmark___10_chunks___1KB-2	    2000	   3662827 ns/op	   5.46 MB/s
-Histogram (unit: ms)
-Count: 2000  Min: 2  Max: 15  Avg: 3.11
-------------------------------------------------------------
-[  2,   3)  1012   50.6%   50.6%  #####
-[  3,   4)   794   39.7%   90.3%  ####
-[  4,   5)    67    3.4%   93.7%  
-[  5,   6)     4    0.2%   93.9%  
-[  6,   7)     0    0.0%   93.9%  
-[  7,   9)     0    0.0%   93.9%  
-[  9,  11)    25    1.2%   95.1%  
-[ 11,  14)    53    2.7%   97.8%  
-[ 14,  17)    45    2.2%  100.0%  
-[ 17,  21)     0    0.0%  100.0%  
-[ 21,  26)     0    0.0%  100.0%  
-[ 26,  32)     0    0.0%  100.0%  
-[ 32,  39)     0    0.0%  100.0%  
-[ 39,  48)     0    0.0%  100.0%  
-[ 48,  58)     0    0.0%  100.0%  
-[ 58,  70)     0    0.0%  100.0%  
-[ 70, inf)     0    0.0%  100.0%  
-Benchmark___10_chunks__10KB	    1000	   7533684 ns/op	  26.55 MB/s
-Histogram (unit: ms)
-Count: 1000  Min: 5  Max: 26  Avg: 7.03
-------------------------------------------------------------
-[  5,   6)   831   83.1%   83.1%  ########
-[  6,   7)     4    0.4%   83.5%  
-[  7,   8)     0    0.0%   83.5%  
-[  8,   9)    29    2.9%   86.4%  
-[  9,  11)    18    1.8%   88.2%  
-[ 11,  13)     0    0.0%   88.2%  
-[ 13,  16)     0    0.0%   88.2%  
-[ 16,  20)    39    3.9%   92.1%  
-[ 20,  25)    78    7.8%   99.9%  #
-[ 25,  31)     1    0.1%  100.0%  
-[ 31,  38)     0    0.0%  100.0%  
-[ 38,  47)     0    0.0%  100.0%  
-[ 47,  58)     0    0.0%  100.0%  
-[ 58,  71)     0    0.0%  100.0%  
-[ 71,  88)     0    0.0%  100.0%  
-[ 88, 108)     0    0.0%  100.0%  
-[108, inf)     0    0.0%  100.0%  
-Benchmark___10_chunks__10KB-2	    2000	   4922363 ns/op	  40.63 MB/s
-Histogram (unit: ms)
-Count: 2000  Min: 3  Max: 18  Avg: 4.32
-------------------------------------------------------------
-[  3,   4)  1573   78.7%   78.7%  ########
-[  4,   5)   146    7.3%   86.0%  #
-[  5,   6)    53    2.7%   88.6%  
-[  6,   7)     0    0.0%   88.6%  
-[  7,   9)     0    0.0%   88.6%  
-[  9,  11)     3    0.2%   88.8%  
-[ 11,  13)    79    4.0%   92.7%  
-[ 13,  16)   107    5.4%   98.1%  #
-[ 16,  20)    39    2.0%  100.0%  
-[ 20,  25)     0    0.0%  100.0%  
-[ 25,  31)     0    0.0%  100.0%  
-[ 31,  38)     0    0.0%  100.0%  
-[ 38,  46)     0    0.0%  100.0%  
-[ 46,  56)     0    0.0%  100.0%  
-[ 56,  68)     0    0.0%  100.0%  
-[ 68,  82)     0    0.0%  100.0%  
-[ 82, inf)     0    0.0%  100.0%  
-Benchmark___10_chunks_100KB	     200	  31539312 ns/op	  63.41 MB/s
-Histogram (unit: ms)
-Count: 200  Min: 22  Max: 40  Avg: 30.91
-------------------------------------------------------------
-[ 22,  23)    1    0.5%    0.5%  
-[ 23,  24)    1    0.5%    1.0%  
-[ 24,  25)   69   34.5%   35.5%  ###
-[ 25,  26)   22   11.0%   46.5%  #
-[ 26,  28)    7    3.5%   50.0%  
-[ 28,  30)    0    0.0%   50.0%  
-[ 30,  33)    0    0.0%   50.0%  
-[ 33,  36)    0    0.0%   50.0%  
-[ 36,  40)   95   47.5%   97.5%  #####
-[ 40,  45)    5    2.5%  100.0%  
-[ 45,  51)    0    0.0%  100.0%  
-[ 51,  59)    0    0.0%  100.0%  
-[ 59,  69)    0    0.0%  100.0%  
-[ 69,  81)    0    0.0%  100.0%  
-[ 81,  95)    0    0.0%  100.0%  
-[ 95, 112)    0    0.0%  100.0%  
-[112, inf)    0    0.0%  100.0%  
-Benchmark___10_chunks_100KB-2	     500	  18574440 ns/op	 107.67 MB/s
-Histogram (unit: ms)
-Count: 500  Min: 12  Max: 27  Avg: 18.10
-------------------------------------------------------------
-[ 12,  13)   79   15.8%   15.8%  ##
-[ 13,  14)  168   33.6%   49.4%  ###
-[ 14,  15)   12    2.4%   51.8%  
-[ 15,  16)    1    0.2%   52.0%  
-[ 16,  18)    0    0.0%   52.0%  
-[ 18,  20)    0    0.0%   52.0%  
-[ 20,  22)   30    6.0%   58.0%  #
-[ 22,  25)   94   18.8%   76.8%  ##
-[ 25,  29)  116   23.2%  100.0%  ##
-[ 29,  34)    0    0.0%  100.0%  
-[ 34,  40)    0    0.0%  100.0%  
-[ 40,  47)    0    0.0%  100.0%  
-[ 47,  55)    0    0.0%  100.0%  
-[ 55,  65)    0    0.0%  100.0%  
-[ 65,  77)    0    0.0%  100.0%  
-[ 77,  91)    0    0.0%  100.0%  
-[ 91, inf)    0    0.0%  100.0%  
-Benchmark__100_chunks____1B	     500	  18036549 ns/op	   0.01 MB/s
-Histogram (unit: ms)
-Count: 500  Min: 14  Max: 41  Avg: 17.44
-------------------------------------------------------------
-[ 14,  15)  280   56.0%   56.0%  ######
-[ 15,  16)  106   21.2%   77.2%  ##
-[ 16,  17)   10    2.0%   79.2%  
-[ 17,  18)    1    0.2%   79.4%  
-[ 18,  20)    6    1.2%   80.6%  
-[ 20,  23)   22    4.4%   85.0%  
-[ 23,  26)    0    0.0%   85.0%  
-[ 26,  30)   16    3.2%   88.2%  
-[ 30,  35)   27    5.4%   93.6%  #
-[ 35,  42)   32    6.4%  100.0%  #
-[ 42,  51)    0    0.0%  100.0%  
-[ 51,  62)    0    0.0%  100.0%  
-[ 62,  75)    0    0.0%  100.0%  
-[ 75,  92)    0    0.0%  100.0%  
-[ 92, 113)    0    0.0%  100.0%  
-[113, 140)    0    0.0%  100.0%  
-[140, inf)    0    0.0%  100.0%  
-Benchmark__100_chunks____1B-2	    1000	  12395699 ns/op	   0.02 MB/s
-Histogram (unit: ms)
-Count: 1000  Min: 7  Max: 31  Avg: 11.90
-------------------------------------------------------------
-[  7,   8)    26    2.6%    2.6%  
-[  8,   9)    14    1.4%    4.0%  
-[  9,  10)   171   17.1%   21.1%  ##
-[ 10,  11)   528   52.8%   73.9%  #####
-[ 11,  13)    71    7.1%   81.0%  #
-[ 13,  15)    23    2.3%   83.3%  
-[ 15,  18)     8    0.8%   84.1%  
-[ 18,  22)    68    6.8%   90.9%  #
-[ 22,  27)    89    8.9%   99.8%  #
-[ 27,  33)     2    0.2%  100.0%  
-[ 33,  41)     0    0.0%  100.0%  
-[ 41,  51)     0    0.0%  100.0%  
-[ 51,  63)     0    0.0%  100.0%  
-[ 63,  78)     0    0.0%  100.0%  
-[ 78,  97)     0    0.0%  100.0%  
-[ 97, 121)     0    0.0%  100.0%  
-[121, inf)     0    0.0%  100.0%  
-Benchmark__100_chunks___10B	     300	  20669375 ns/op	   0.10 MB/s
-Histogram (unit: ms)
-Count: 300  Min: 17  Max: 39  Avg: 20.31
-------------------------------------------------------------
-[ 17,  18)  228   76.0%   76.0%  ########
-[ 18,  19)    8    2.7%   78.7%  
-[ 19,  20)    2    0.7%   79.3%  
-[ 20,  21)    0    0.0%   79.3%  
-[ 21,  23)    3    1.0%   80.3%  
-[ 23,  25)   12    4.0%   84.3%  
-[ 25,  28)    0    0.0%   84.3%  
-[ 28,  32)    0    0.0%   84.3%  
-[ 32,  37)   15    5.0%   89.3%  #
-[ 37,  43)   32   10.7%  100.0%  #
-[ 43,  50)    0    0.0%  100.0%  
-[ 50,  59)    0    0.0%  100.0%  
-[ 59,  70)    0    0.0%  100.0%  
-[ 70,  84)    0    0.0%  100.0%  
-[ 84, 101)    0    0.0%  100.0%  
-[101, 122)    0    0.0%  100.0%  
-[122, inf)    0    0.0%  100.0%  
-Benchmark__100_chunks___10B-2	     500	  12634978 ns/op	   0.16 MB/s
-Histogram (unit: ms)
-Count: 500  Min: 9  Max: 27  Avg: 12.11
-------------------------------------------------------------
-[  9,  10)   69   13.8%   13.8%  #
-[ 10,  11)  287   57.4%   71.2%  ######
-[ 11,  12)   47    9.4%   80.6%  #
-[ 12,  13)   10    2.0%   82.6%  
-[ 13,  15)    8    1.6%   84.2%  
-[ 15,  17)    0    0.0%   84.2%  
-[ 17,  20)    5    1.0%   85.2%  
-[ 20,  23)   28    5.6%   90.8%  #
-[ 23,  27)   43    8.6%   99.4%  #
-[ 27,  32)    3    0.6%  100.0%  
-[ 32,  38)    0    0.0%  100.0%  
-[ 38,  46)    0    0.0%  100.0%  
-[ 46,  56)    0    0.0%  100.0%  
-[ 56,  68)    0    0.0%  100.0%  
-[ 68,  82)    0    0.0%  100.0%  
-[ 82,  99)    0    0.0%  100.0%  
-[ 99, inf)    0    0.0%  100.0%  
-Benchmark__100_chunks__100B	     300	  23164692 ns/op	   0.86 MB/s
-Histogram (unit: ms)
-Count: 300  Min: 19  Max: 42  Avg: 22.72
-------------------------------------------------------------
-[ 19,  20)  209   69.7%   69.7%  #######
-[ 20,  21)   17    5.7%   75.3%  #
-[ 21,  22)    6    2.0%   77.3%  
-[ 22,  23)    1    0.3%   77.7%  
-[ 23,  25)    1    0.3%   78.0%  
-[ 25,  27)   17    5.7%   83.7%  #
-[ 27,  30)    0    0.0%   83.7%  
-[ 30,  34)    0    0.0%   83.7%  
-[ 34,  39)   19    6.3%   90.0%  #
-[ 39,  45)   30   10.0%  100.0%  #
-[ 45,  53)    0    0.0%  100.0%  
-[ 53,  62)    0    0.0%  100.0%  
-[ 62,  74)    0    0.0%  100.0%  
-[ 74,  89)    0    0.0%  100.0%  
-[ 89, 107)    0    0.0%  100.0%  
-[107, 129)    0    0.0%  100.0%  
-[129, inf)    0    0.0%  100.0%  
-Benchmark__100_chunks__100B-2	     500	  13821225 ns/op	   1.45 MB/s
-Histogram (unit: ms)
-Count: 500  Min: 10  Max: 29  Avg: 13.29
-------------------------------------------------------------
-[ 10,  11)   47    9.4%    9.4%  #
-[ 11,  12)  307   61.4%   70.8%  ######
-[ 12,  13)   46    9.2%   80.0%  #
-[ 13,  14)    9    1.8%   81.8%  
-[ 14,  16)    9    1.8%   83.6%  
-[ 16,  18)    0    0.0%   83.6%  
-[ 18,  21)    5    1.0%   84.6%  
-[ 21,  24)   25    5.0%   89.6%  #
-[ 24,  28)   49    9.8%   99.4%  #
-[ 28,  33)    3    0.6%  100.0%  
-[ 33,  40)    0    0.0%  100.0%  
-[ 40,  48)    0    0.0%  100.0%  
-[ 48,  58)    0    0.0%  100.0%  
-[ 58,  70)    0    0.0%  100.0%  
-[ 70,  85)    0    0.0%  100.0%  
-[ 85, 103)    0    0.0%  100.0%  
-[103, inf)    0    0.0%  100.0%  
-Benchmark__100_chunks___1KB	     300	  26071439 ns/op	   7.67 MB/s
-Histogram (unit: ms)
-Count: 300  Min: 20  Max: 48  Avg: 25.72
-------------------------------------------------------------
-[ 20,  21)    1    0.3%    0.3%  
-[ 21,  22)  195   65.0%   65.3%  #######
-[ 22,  23)   13    4.3%   69.7%  
-[ 23,  24)    5    1.7%   71.3%  
-[ 24,  26)    0    0.0%   71.3%  
-[ 26,  29)   23    7.7%   79.0%  #
-[ 29,  32)    0    0.0%   79.0%  
-[ 32,  36)    0    0.0%   79.0%  
-[ 36,  41)   23    7.7%   86.7%  #
-[ 41,  48)   39   13.0%   99.7%  #
-[ 48,  57)    1    0.3%  100.0%  
-[ 57,  68)    0    0.0%  100.0%  
-[ 68,  82)    0    0.0%  100.0%  
-[ 82,  99)    0    0.0%  100.0%  
-[ 99, 121)    0    0.0%  100.0%  
-[121, 148)    0    0.0%  100.0%  
-[148, inf)    0    0.0%  100.0%  
-Benchmark__100_chunks___1KB-2	     500	  15738134 ns/op	  12.71 MB/s
-Histogram (unit: ms)
-Count: 500  Min: 11  Max: 30  Avg: 15.24
-------------------------------------------------------------
-[ 11,  12)   19    3.8%    3.8%  
-[ 12,  13)  253   50.6%   54.4%  #####
-[ 13,  14)   97   19.4%   73.8%  ##
-[ 14,  15)   11    2.2%   76.0%  
-[ 15,  17)   15    3.0%   79.0%  
-[ 17,  19)    0    0.0%   79.0%  
-[ 19,  22)    3    0.6%   79.6%  
-[ 22,  25)   28    5.6%   85.2%  #
-[ 25,  29)   61   12.2%   97.4%  #
-[ 29,  34)   13    2.6%  100.0%  
-[ 34,  41)    0    0.0%  100.0%  
-[ 41,  49)    0    0.0%  100.0%  
-[ 49,  59)    0    0.0%  100.0%  
-[ 59,  71)    0    0.0%  100.0%  
-[ 71,  86)    0    0.0%  100.0%  
-[ 86, 104)    0    0.0%  100.0%  
-[104, inf)    0    0.0%  100.0%  
-Benchmark__100_chunks__10KB	     100	  50248311 ns/op	  39.80 MB/s
-Histogram (unit: ms)
-Count: 100  Min: 37  Max: 60  Avg: 49.72
-------------------------------------------------------------
-[ 37,  38)    4    4.0%    4.0%  
-[ 38,  39)    7    7.0%   11.0%  #
-[ 39,  40)    6    6.0%   17.0%  #
-[ 40,  41)    5    5.0%   22.0%  #
-[ 41,  43)   18   18.0%   40.0%  ##
-[ 43,  45)    0    0.0%   40.0%  
-[ 45,  48)    0    0.0%   40.0%  
-[ 48,  52)    0    0.0%   40.0%  
-[ 52,  57)   24   24.0%   64.0%  ##
-[ 57,  63)   36   36.0%  100.0%  ####
-[ 63,  71)    0    0.0%  100.0%  
-[ 71,  80)    0    0.0%  100.0%  
-[ 80,  92)    0    0.0%  100.0%  
-[ 92, 107)    0    0.0%  100.0%  
-[107, 125)    0    0.0%  100.0%  
-[125, 147)    0    0.0%  100.0%  
-[147, inf)    0    0.0%  100.0%  
-Benchmark__100_chunks__10KB-2	     300	  28614761 ns/op	  69.89 MB/s
-Histogram (unit: ms)
-Count: 300  Min: 19  Max: 38  Avg: 28.11
-------------------------------------------------------------
-[ 19,  20)    7    2.3%    2.3%  
-[ 20,  21)   55   18.3%   20.7%  ##
-[ 21,  22)   43   14.3%   35.0%  #
-[ 22,  23)    9    3.0%   38.0%  
-[ 23,  25)    3    1.0%   39.0%  
-[ 25,  27)    0    0.0%   39.0%  
-[ 27,  30)    3    1.0%   40.0%  
-[ 30,  33)   84   28.0%   68.0%  ###
-[ 33,  37)   94   31.3%   99.3%  ###
-[ 37,  42)    2    0.7%  100.0%  
-[ 42,  49)    0    0.0%  100.0%  
-[ 49,  57)    0    0.0%  100.0%  
-[ 57,  67)    0    0.0%  100.0%  
-[ 67,  79)    0    0.0%  100.0%  
-[ 79,  94)    0    0.0%  100.0%  
-[ 94, 112)    0    0.0%  100.0%  
-[112, inf)    0    0.0%  100.0%  
-Benchmark__100_chunks_100KB	      30	 272889576 ns/op	  73.29 MB/s
-Histogram (unit: ms)
-Count: 30  Min: 267  Max: 292  Avg: 272.40
-------------------------------------------------------------
-[267, 268)   3   10.0%   10.0%  #
-[268, 269)   8   26.7%   36.7%  ###
-[269, 270)   4   13.3%   50.0%  #
-[270, 271)   4   13.3%   63.3%  #
-[271, 273)   4   13.3%   76.7%  #
-[273, 275)   1    3.3%   80.0%  
-[275, 278)   1    3.3%   83.3%  
-[278, 282)   0    0.0%   83.3%  
-[282, 287)   1    3.3%   86.7%  
-[287, 293)   4   13.3%  100.0%  #
-[293, 301)   0    0.0%  100.0%  
-[301, 311)   0    0.0%  100.0%  
-[311, 324)   0    0.0%  100.0%  
-[324, 340)   0    0.0%  100.0%  
-[340, 360)   0    0.0%  100.0%  
-[360, 384)   0    0.0%  100.0%  
-[384, inf)   0    0.0%  100.0%  
-Benchmark__100_chunks_100KB-2	      50	 149680912 ns/op	 133.62 MB/s
-Histogram (unit: ms)
-Count: 50  Min: 138  Max: 158  Avg: 149.14
-------------------------------------------------------------
-[138, 139)   2    4.0%    4.0%  
-[139, 140)   0    0.0%    4.0%  
-[140, 141)   0    0.0%    4.0%  
-[141, 142)   2    4.0%    8.0%  
-[142, 144)   4    8.0%   16.0%  #
-[144, 146)   4    8.0%   24.0%  #
-[146, 149)   6   12.0%   36.0%  #
-[149, 153)  20   40.0%   76.0%  ####
-[153, 157)  11   22.0%   98.0%  ##
-[157, 163)   1    2.0%  100.0%  
-[163, 170)   0    0.0%  100.0%  
-[170, 178)   0    0.0%  100.0%  
-[178, 188)   0    0.0%  100.0%  
-[188, 201)   0    0.0%  100.0%  
-[201, 217)   0    0.0%  100.0%  
-[217, 236)   0    0.0%  100.0%  
-[236, inf)   0    0.0%  100.0%  
-Benchmark___1K_chunks____1B	     100	 111621410 ns/op	   0.02 MB/s
-Histogram (unit: ms)
-Count: 100  Min: 93  Max: 120  Avg: 111.11
-------------------------------------------------------------
-[ 93,  94)    1    1.0%    1.0%  
-[ 94,  95)    0    0.0%    1.0%  
-[ 95,  96)    0    0.0%    1.0%  
-[ 96,  97)    0    0.0%    1.0%  
-[ 97,  99)    0    0.0%    1.0%  
-[ 99, 102)   17   17.0%   18.0%  ##
-[102, 105)   12   12.0%   30.0%  #
-[105, 109)    1    1.0%   31.0%  
-[109, 114)    6    6.0%   37.0%  #
-[114, 121)   63   63.0%  100.0%  ######
-[121, 130)    0    0.0%  100.0%  
-[130, 141)    0    0.0%  100.0%  
-[141, 154)    0    0.0%  100.0%  
-[154, 171)    0    0.0%  100.0%  
-[171, 192)    0    0.0%  100.0%  
-[192, 219)    0    0.0%  100.0%  
-[219, inf)    0    0.0%  100.0%  
-Benchmark___1K_chunks____1B-2	     100	 103311101 ns/op	   0.02 MB/s
-Histogram (unit: ms)
-Count: 100  Min: 62  Max: 168  Avg: 102.82
-------------------------------------------------------------
-[ 62,  63)    1    1.0%    1.0%  
-[ 63,  64)    0    0.0%    1.0%  
-[ 64,  65)    0    0.0%    1.0%  
-[ 65,  67)    0    0.0%    1.0%  
-[ 67,  70)    0    0.0%    1.0%  
-[ 70,  74)    1    1.0%    2.0%  
-[ 74,  80)    2    2.0%    4.0%  
-[ 80,  88)    2    2.0%    6.0%  
-[ 88, 100)   23   23.0%   29.0%  ##
-[100, 116)   61   61.0%   90.0%  ######
-[116, 138)    9    9.0%   99.0%  #
-[138, 168)    0    0.0%   99.0%  
-[168, 209)    1    1.0%  100.0%  
-[209, 265)    0    0.0%  100.0%  
-[265, 342)    0    0.0%  100.0%  
-[342, 447)    0    0.0%  100.0%  
-[447, inf)    0    0.0%  100.0%  
-Benchmark___1K_chunks___10B	      50	 189580683 ns/op	   0.11 MB/s
-Histogram (unit: ms)
-Count: 50  Min: 181  Max: 210  Avg: 189.10
-------------------------------------------------------------
-[181, 182)   2    4.0%    4.0%  
-[182, 183)   0    0.0%    4.0%  
-[183, 184)   1    2.0%    6.0%  
-[184, 185)   1    2.0%    8.0%  
-[185, 187)  16   32.0%   40.0%  ###
-[187, 190)  20   40.0%   80.0%  ####
-[190, 193)   2    4.0%   84.0%  
-[193, 197)   1    2.0%   86.0%  
-[197, 203)   3    6.0%   92.0%  #
-[203, 210)   3    6.0%   98.0%  #
-[210, 219)   1    2.0%  100.0%  
-[219, 230)   0    0.0%  100.0%  
-[230, 244)   0    0.0%  100.0%  
-[244, 262)   0    0.0%  100.0%  
-[262, 285)   0    0.0%  100.0%  
-[285, 313)   0    0.0%  100.0%  
-[313, inf)   0    0.0%  100.0%  
-Benchmark___1K_chunks___10B-2	     100	 107068429 ns/op	   0.19 MB/s
-Histogram (unit: ms)
-Count: 100  Min: 98  Max: 124  Avg: 106.53
-------------------------------------------------------------
-[ 98,  99)    1    1.0%    1.0%  
-[ 99, 100)    0    0.0%    1.0%  
-[100, 101)    5    5.0%    6.0%  #
-[101, 102)   12   12.0%   18.0%  #
-[102, 104)   20   20.0%   38.0%  ##
-[104, 106)   18   18.0%   56.0%  ##
-[106, 109)   23   23.0%   79.0%  ##
-[109, 113)    4    4.0%   83.0%  
-[113, 118)    7    7.0%   90.0%  #
-[118, 125)   10   10.0%  100.0%  #
-[125, 133)    0    0.0%  100.0%  
-[133, 143)    0    0.0%  100.0%  
-[143, 156)    0    0.0%  100.0%  
-[156, 172)    0    0.0%  100.0%  
-[172, 192)    0    0.0%  100.0%  
-[192, 217)    0    0.0%  100.0%  
-[217, inf)    0    0.0%  100.0%  
-Benchmark___1K_chunks__100B	      30	 223128293 ns/op	   0.90 MB/s
-Histogram (unit: ms)
-Count: 30  Min: 210  Max: 241  Avg: 222.53
-------------------------------------------------------------
-[210, 211)   1    3.3%    3.3%  
-[211, 212)   0    0.0%    3.3%  
-[212, 213)   0    0.0%    3.3%  
-[213, 214)   0    0.0%    3.3%  
-[214, 216)   2    6.7%   10.0%  #
-[216, 219)   8   26.7%   36.7%  ###
-[219, 222)   8   26.7%   63.3%  ###
-[222, 226)   5   16.7%   80.0%  ##
-[226, 232)   0    0.0%   80.0%  
-[232, 239)   5   16.7%   96.7%  ##
-[239, 248)   1    3.3%  100.0%  
-[248, 260)   0    0.0%  100.0%  
-[260, 275)   0    0.0%  100.0%  
-[275, 294)   0    0.0%  100.0%  
-[294, 318)   0    0.0%  100.0%  
-[318, 348)   0    0.0%  100.0%  
-[348, inf)   0    0.0%  100.0%  
-Benchmark___1K_chunks__100B-2	      50	 125690815 ns/op	   1.59 MB/s
-Histogram (unit: ms)
-Count: 50  Min: 117  Max: 142  Avg: 125.22
-------------------------------------------------------------
-[117, 118)   4    8.0%    8.0%  #
-[118, 119)   1    2.0%   10.0%  
-[119, 120)   1    2.0%   12.0%  
-[120, 121)   8   16.0%   28.0%  ##
-[121, 123)   9   18.0%   46.0%  ##
-[123, 125)   9   18.0%   64.0%  ##
-[125, 128)   6   12.0%   76.0%  #
-[128, 132)   2    4.0%   80.0%  
-[132, 137)   5   10.0%   90.0%  #
-[137, 143)   5   10.0%  100.0%  #
-[143, 151)   0    0.0%  100.0%  
-[151, 161)   0    0.0%  100.0%  
-[161, 174)   0    0.0%  100.0%  
-[174, 190)   0    0.0%  100.0%  
-[190, 210)   0    0.0%  100.0%  
-[210, 234)   0    0.0%  100.0%  
-[234, inf)   0    0.0%  100.0%  
-Benchmark___1K_chunks___1KB	      30	 251956982 ns/op	   7.94 MB/s
-Histogram (unit: ms)
-Count: 30  Min: 238  Max: 266  Avg: 251.50
-------------------------------------------------------------
-[238, 239)   1    3.3%    3.3%  
-[239, 240)   0    0.0%    3.3%  
-[240, 241)   1    3.3%    6.7%  
-[241, 242)   0    0.0%    6.7%  
-[242, 244)   3   10.0%   16.7%  #
-[244, 247)   7   23.3%   40.0%  ##
-[247, 250)   3   10.0%   50.0%  #
-[250, 254)   3   10.0%   60.0%  #
-[254, 259)   1    3.3%   63.3%  
-[259, 266)  10   33.3%   96.7%  ###
-[266, 275)   1    3.3%  100.0%  
-[275, 286)   0    0.0%  100.0%  
-[286, 300)   0    0.0%  100.0%  
-[300, 317)   0    0.0%  100.0%  
-[317, 339)   0    0.0%  100.0%  
-[339, 366)   0    0.0%  100.0%  
-[366, inf)   0    0.0%  100.0%  
-Benchmark___1K_chunks___1KB-2	      50	 144214400 ns/op	  13.87 MB/s
-Histogram (unit: ms)
-Count: 50  Min: 130  Max: 158  Avg: 143.70
-------------------------------------------------------------
-[130, 131)   1    2.0%    2.0%  
-[131, 132)   0    0.0%    2.0%  
-[132, 133)   1    2.0%    4.0%  
-[133, 134)   6   12.0%   16.0%  #
-[134, 136)   6   12.0%   28.0%  #
-[136, 139)   4    8.0%   36.0%  #
-[139, 142)   6   12.0%   48.0%  #
-[142, 146)   1    2.0%   50.0%  
-[146, 151)  13   26.0%   76.0%  ###
-[151, 158)   9   18.0%   94.0%  ##
-[158, 167)   3    6.0%  100.0%  #
-[167, 178)   0    0.0%  100.0%  
-[178, 192)   0    0.0%  100.0%  
-[192, 209)   0    0.0%  100.0%  
-[209, 231)   0    0.0%  100.0%  
-[231, 258)   0    0.0%  100.0%  
-[258, inf)   0    0.0%  100.0%  
-Benchmark___1K_chunks__10KB	      20	 474946063 ns/op	  42.11 MB/s
-Histogram (unit: ms)
-Count: 20  Min: 458  Max: 492  Avg: 474.60
-------------------------------------------------------------
-[458, 459)   1    5.0%    5.0%  #
-[459, 460)   0    0.0%    5.0%  
-[460, 461)   1    5.0%   10.0%  #
-[461, 463)   3   15.0%   25.0%  ##
-[463, 465)   1    5.0%   30.0%  #
-[465, 468)   4   20.0%   50.0%  ##
-[468, 472)   0    0.0%   50.0%  
-[472, 477)   0    0.0%   50.0%  
-[477, 483)   1    5.0%   55.0%  #
-[483, 491)   8   40.0%   95.0%  ####
-[491, 501)   1    5.0%  100.0%  #
-[501, 514)   0    0.0%  100.0%  
-[514, 530)   0    0.0%  100.0%  
-[530, 551)   0    0.0%  100.0%  
-[551, 577)   0    0.0%  100.0%  
-[577, 610)   0    0.0%  100.0%  
-[610, inf)   0    0.0%  100.0%  
-Benchmark___1K_chunks__10KB-2	      30	 267531367 ns/op	  74.76 MB/s
-Histogram (unit: ms)
-Count: 30  Min: 250  Max: 294  Avg: 267.07
-------------------------------------------------------------
-[250, 251)   1    3.3%    3.3%  
-[251, 252)   1    3.3%    6.7%  
-[252, 253)   0    0.0%    6.7%  
-[253, 255)   0    0.0%    6.7%  
-[255, 257)   2    6.7%   13.3%  #
-[257, 260)   2    6.7%   20.0%  #
-[260, 264)   7   23.3%   43.3%  ##
-[264, 269)   3   10.0%   53.3%  #
-[269, 276)   8   26.7%   80.0%  ###
-[276, 285)   5   16.7%   96.7%  ##
-[285, 297)   1    3.3%  100.0%  
-[297, 313)   0    0.0%  100.0%  
-[313, 333)   0    0.0%  100.0%  
-[333, 359)   0    0.0%  100.0%  
-[359, 393)   0    0.0%  100.0%  
-[393, 437)   0    0.0%  100.0%  
-[437, inf)   0    0.0%  100.0%  
-Benchmark___1K_chunks_100KB	       2	2675372295 ns/op	  74.76 MB/s
-Histogram (unit: s)
-Count: 2  Min: 2  Max: 2  Avg: 2.00
-------------------------------------------------------------
-[  2,   3)  2  100.0%  100.0%  ##########
-[  3,   3)  0    0.0%  100.0%  
-[  3,   3)  0    0.0%  100.0%  
-[  3,   3)  0    0.0%  100.0%  
-[  3,   3)  0    0.0%  100.0%  
-[  3,   3)  0    0.0%  100.0%  
-[  3,   3)  0    0.0%  100.0%  
-[  3,   3)  0    0.0%  100.0%  
-[  3,   3)  0    0.0%  100.0%  
-[  3,   3)  0    0.0%  100.0%  
-[  3,   3)  0    0.0%  100.0%  
-[  3,   3)  0    0.0%  100.0%  
-[  3,   3)  0    0.0%  100.0%  
-[  3,   3)  0    0.0%  100.0%  
-[  3,   3)  0    0.0%  100.0%  
-[  3,   3)  0    0.0%  100.0%  
-[  3, inf)  0    0.0%  100.0%  
-Benchmark___1K_chunks_100KB-2	       5	1421481350 ns/op	 140.70 MB/s
-Histogram (unit: s)
-Count: 5  Min: 1  Max: 1  Avg: 1.00
-------------------------------------------------------------
-[  1,   2)  5  100.0%  100.0%  ##########
-[  2,   2)  0    0.0%  100.0%  
-[  2,   2)  0    0.0%  100.0%  
-[  2,   2)  0    0.0%  100.0%  
-[  2,   2)  0    0.0%  100.0%  
-[  2,   2)  0    0.0%  100.0%  
-[  2,   2)  0    0.0%  100.0%  
-[  2,   2)  0    0.0%  100.0%  
-[  2,   2)  0    0.0%  100.0%  
-[  2,   2)  0    0.0%  100.0%  
-[  2,   2)  0    0.0%  100.0%  
-[  2,   2)  0    0.0%  100.0%  
-[  2,   2)  0    0.0%  100.0%  
-[  2,   2)  0    0.0%  100.0%  
-[  2,   2)  0    0.0%  100.0%  
-[  2,   2)  0    0.0%  100.0%  
-[  2, inf)  0    0.0%  100.0%  
-
-================================================================================
-Echo streaming RPC (Per chunk)
-================================================================================
-Benchmark__per_chunk____1B	   50000	    163939 ns/op	   0.01 MB/s
-Histogram (unit: s)
-Count: 1  Min: 8  Max: 8  Avg: 8.00
-------------------------------------------------------------
-[  8,   9)  1  100.0%  100.0%  ##########
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9, inf)  0    0.0%  100.0%  
-Benchmark__per_chunk____1B-2	   50000	    118409 ns/op	   0.02 MB/s
-Histogram (unit: s)
-Count: 1  Min: 5  Max: 5  Avg: 5.00
-------------------------------------------------------------
-[  5,   6)  1  100.0%  100.0%  ##########
-[  6,   6)  0    0.0%  100.0%  
-[  6,   6)  0    0.0%  100.0%  
-[  6,   6)  0    0.0%  100.0%  
-[  6,   6)  0    0.0%  100.0%  
-[  6,   6)  0    0.0%  100.0%  
-[  6,   6)  0    0.0%  100.0%  
-[  6,   6)  0    0.0%  100.0%  
-[  6,   6)  0    0.0%  100.0%  
-[  6,   6)  0    0.0%  100.0%  
-[  6,   6)  0    0.0%  100.0%  
-[  6,   6)  0    0.0%  100.0%  
-[  6,   6)  0    0.0%  100.0%  
-[  6,   6)  0    0.0%  100.0%  
-[  6,   6)  0    0.0%  100.0%  
-[  6,   6)  0    0.0%  100.0%  
-[  6, inf)  0    0.0%  100.0%  
-Benchmark__per_chunk___10B	   20000	    321908 ns/op	   0.06 MB/s
-Histogram (unit: s)
-Count: 1  Min: 6  Max: 6  Avg: 6.00
-------------------------------------------------------------
-[  6,   7)  1  100.0%  100.0%  ##########
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7, inf)  0    0.0%  100.0%  
-Benchmark__per_chunk___10B-2	   50000	    176818 ns/op	   0.11 MB/s
-Histogram (unit: s)
-Count: 1  Min: 8  Max: 8  Avg: 8.00
-------------------------------------------------------------
-[  8,   9)  1  100.0%  100.0%  ##########
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9, inf)  0    0.0%  100.0%  
-Benchmark__per_chunk__100B	   20000	    411514 ns/op	   0.49 MB/s
-Histogram (unit: s)
-Count: 1  Min: 8  Max: 8  Avg: 8.00
-------------------------------------------------------------
-[  8,   9)  1  100.0%  100.0%  ##########
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9, inf)  0    0.0%  100.0%  
-Benchmark__per_chunk__100B-2	   30000	    231565 ns/op	   0.86 MB/s
-Histogram (unit: s)
-Count: 1  Min: 6  Max: 6  Avg: 6.00
-------------------------------------------------------------
-[  6,   7)  1  100.0%  100.0%  ##########
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7, inf)  0    0.0%  100.0%  
-Benchmark__per_chunk___1KB	   20000	    423999 ns/op	   4.72 MB/s
-Histogram (unit: s)
-Count: 1  Min: 8  Max: 8  Avg: 8.00
-------------------------------------------------------------
-[  8,   9)  1  100.0%  100.0%  ##########
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9,   9)  0    0.0%  100.0%  
-[  9, inf)  0    0.0%  100.0%  
-Benchmark__per_chunk___1KB-2	   30000	    248721 ns/op	   8.04 MB/s
-Histogram (unit: s)
-Count: 1  Min: 7  Max: 7  Avg: 7.00
-------------------------------------------------------------
-[  7,   8)  1  100.0%  100.0%  ##########
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8, inf)  0    0.0%  100.0%  
-Benchmark__per_chunk__10KB	   10000	    631536 ns/op	  31.67 MB/s
-Histogram (unit: s)
-Count: 1  Min: 6  Max: 6  Avg: 6.00
-------------------------------------------------------------
-[  6,   7)  1  100.0%  100.0%  ##########
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7, inf)  0    0.0%  100.0%  
-Benchmark__per_chunk__10KB-2	   20000	    346868 ns/op	  57.66 MB/s
-Histogram (unit: s)
-Count: 1  Min: 6  Max: 6  Avg: 6.00
-------------------------------------------------------------
-[  6,   7)  1  100.0%  100.0%  ##########
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7, inf)  0    0.0%  100.0%  
-Benchmark__per_chunk_100KB	    3000	   2613430 ns/op	  76.53 MB/s
-Histogram (unit: s)
-Count: 1  Min: 7  Max: 7  Avg: 7.00
-------------------------------------------------------------
-[  7,   8)  1  100.0%  100.0%  ##########
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8,   8)  0    0.0%  100.0%  
-[  8, inf)  0    0.0%  100.0%  
-Benchmark__per_chunk_100KB-2	    5000	   1369809 ns/op	 146.01 MB/s
-Histogram (unit: s)
-Count: 1  Min: 6  Max: 6  Avg: 6.00
-------------------------------------------------------------
-[  6,   7)  1  100.0%  100.0%  ##########
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7,   7)  0    0.0%  100.0%  
-[  7, inf)  0    0.0%  100.0%  
-
-================================================================================
-Echo RPC when multiplexing with Echo streaming RPC
-================================================================================
-Benchmark___10B_mux__100_chunks___10B	     500	  18817141 ns/op	   0.00 MB/s
-Histogram (unit: ms)
-Count: 500  Min: 7  Max: 26  Avg: 18.28
-------------------------------------------------------------
-[  7,   8)   41    8.2%    8.2%  #
-[  8,   9)    5    1.0%    9.2%  
-[  9,  10)    1    0.2%    9.4%  
-[ 10,  11)    0    0.0%    9.4%  
-[ 11,  13)    5    1.0%   10.4%  
-[ 13,  15)    0    0.0%   10.4%  
-[ 15,  18)   52   10.4%   20.8%  #
-[ 18,  21)  329   65.8%   86.6%  #######
-[ 21,  25)   66   13.2%   99.8%  #
-[ 25,  30)    1    0.2%  100.0%  
-[ 30,  37)    0    0.0%  100.0%  
-[ 37,  45)    0    0.0%  100.0%  
-[ 45,  55)    0    0.0%  100.0%  
-[ 55,  67)    0    0.0%  100.0%  
-[ 67,  82)    0    0.0%  100.0%  
-[ 82, 100)    0    0.0%  100.0%  
-[100, inf)    0    0.0%  100.0%  
-Benchmark___10B_mux__100_chunks___10B-2	    1000	   7104449 ns/op	   0.00 MB/s
-Histogram (unit: ms)
-Count: 1000  Min: 2  Max: 13  Avg: 6.62
-------------------------------------------------------------
-[  2,   3)    89    8.9%    8.9%  #
-[  3,   4)   110   11.0%   19.9%  #
-[  4,   5)   108   10.8%   30.7%  #
-[  5,   6)   112   11.2%   41.9%  #
-[  6,   7)    77    7.7%   49.6%  #
-[  7,   9)   165   16.5%   66.1%  ##
-[  9,  11)   230   23.0%   89.1%  ##
-[ 11,  14)   109   10.9%  100.0%  #
-[ 14,  17)     0    0.0%  100.0%  
-[ 17,  21)     0    0.0%  100.0%  
-[ 21,  25)     0    0.0%  100.0%  
-[ 25,  30)     0    0.0%  100.0%  
-[ 30,  36)     0    0.0%  100.0%  
-[ 36,  43)     0    0.0%  100.0%  
-[ 43,  52)     0    0.0%  100.0%  
-[ 52,  63)     0    0.0%  100.0%  
-[ 63, inf)     0    0.0%  100.0%  
-Benchmark___10B_mux__100_chunks__100B	     300	  21167617 ns/op	   0.00 MB/s
-Histogram (unit: ms)
-Count: 300  Min: 6  Max: 26  Avg: 20.68
-------------------------------------------------------------
-[  6,   7)   13    4.3%    4.3%  
-[  7,   8)    7    2.3%    6.7%  
-[  8,   9)    9    3.0%    9.7%  
-[  9,  10)    0    0.0%    9.7%  
-[ 10,  12)    0    0.0%    9.7%  
-[ 12,  14)    0    0.0%    9.7%  
-[ 14,  17)    0    0.0%    9.7%  
-[ 17,  21)   29    9.7%   19.3%  #
-[ 21,  25)  237   79.0%   98.3%  ########
-[ 25,  31)    5    1.7%  100.0%  
-[ 31,  38)    0    0.0%  100.0%  
-[ 38,  46)    0    0.0%  100.0%  
-[ 46,  56)    0    0.0%  100.0%  
-[ 56,  69)    0    0.0%  100.0%  
-[ 69,  85)    0    0.0%  100.0%  
-[ 85, 104)    0    0.0%  100.0%  
-[104, inf)    0    0.0%  100.0%  
-Benchmark___10B_mux__100_chunks__100B-2	    1000	   8372251 ns/op	   0.00 MB/s
-Histogram (unit: ms)
-Count: 1000  Min: 2  Max: 15  Avg: 7.88
-------------------------------------------------------------
-[  2,   3)    67    6.7%    6.7%  #
-[  3,   4)    62    6.2%   12.9%  #
-[  4,   5)    83    8.3%   21.2%  #
-[  5,   6)    85    8.5%   29.7%  #
-[  6,   7)    92    9.2%   38.9%  #
-[  7,   9)   150   15.0%   53.9%  ##
-[  9,  11)   144   14.4%   68.3%  #
-[ 11,  14)   307   30.7%   99.0%  ###
-[ 14,  17)    10    1.0%  100.0%  
-[ 17,  21)     0    0.0%  100.0%  
-[ 21,  26)     0    0.0%  100.0%  
-[ 26,  32)     0    0.0%  100.0%  
-[ 32,  39)     0    0.0%  100.0%  
-[ 39,  48)     0    0.0%  100.0%  
-[ 48,  58)     0    0.0%  100.0%  
-[ 58,  70)     0    0.0%  100.0%  
-[ 70, inf)     0    0.0%  100.0%  
-Benchmark___10B_mux__100_chunks___1KB	     300	  22817830 ns/op	   0.00 MB/s
-Histogram (unit: ms)
-Count: 300  Min: 6  Max: 28  Avg: 22.30
-------------------------------------------------------------
-[  6,   7)   15    5.0%    5.0%  #
-[  7,   8)    4    1.3%    6.3%  
-[  8,   9)    9    3.0%    9.3%  
-[  9,  10)    0    0.0%    9.3%  
-[ 10,  12)    0    0.0%    9.3%  
-[ 12,  14)    0    0.0%    9.3%  
-[ 14,  17)    2    0.7%   10.0%  
-[ 17,  21)   24    8.0%   18.0%  #
-[ 21,  26)  207   69.0%   87.0%  #######
-[ 26,  32)   39   13.0%  100.0%  #
-[ 32,  39)    0    0.0%  100.0%  
-[ 39,  48)    0    0.0%  100.0%  
-[ 48,  59)    0    0.0%  100.0%  
-[ 59,  73)    0    0.0%  100.0%  
-[ 73,  90)    0    0.0%  100.0%  
-[ 90, 111)    0    0.0%  100.0%  
-[111, inf)    0    0.0%  100.0%  
-Benchmark___10B_mux__100_chunks___1KB-2	    1000	   8831943 ns/op	   0.00 MB/s
-Histogram (unit: ms)
-Count: 1000  Min: 1  Max: 17  Avg: 8.35
-------------------------------------------------------------
-[  1,   2)    12    1.2%    1.2%  
-[  2,   3)   155   15.5%   16.7%  ##
-[  3,   4)    59    5.9%   22.6%  #
-[  4,   5)    48    4.8%   27.4%  
-[  5,   7)   134   13.4%   40.8%  #
-[  7,   9)    91    9.1%   49.9%  #
-[  9,  12)   132   13.2%   63.1%  #
-[ 12,  15)   328   32.8%   95.9%  ###
-[ 15,  19)    41    4.1%  100.0%  
-[ 19,  24)     0    0.0%  100.0%  
-[ 24,  30)     0    0.0%  100.0%  
-[ 30,  37)     0    0.0%  100.0%  
-[ 37,  46)     0    0.0%  100.0%  
-[ 46,  57)     0    0.0%  100.0%  
-[ 57,  70)     0    0.0%  100.0%  
-[ 70,  86)     0    0.0%  100.0%  
-[ 86, inf)     0    0.0%  100.0%  
-Benchmark___10B_mux___1K_chunks___10B	     100	 123136622 ns/op	   0.00 MB/s
-Histogram (unit: ms)
-Count: 100  Min: 5  Max: 173  Avg: 122.60
-------------------------------------------------------------
-[  5,   6)    1    1.0%    1.0%  
-[  6,   7)    0    0.0%    1.0%  
-[  7,   8)    0    0.0%    1.0%  
-[  8,  10)    1    1.0%    2.0%  
-[ 10,  13)    0    0.0%    2.0%  
-[ 13,  18)    1    1.0%    3.0%  
-[ 18,  25)    0    0.0%    3.0%  
-[ 25,  35)    1    1.0%    4.0%  
-[ 35,  50)    2    2.0%    6.0%  
-[ 50,  71)   11   11.0%   17.0%  #
-[ 71, 101)   22   22.0%   39.0%  ##
-[101, 143)   14   14.0%   53.0%  #
-[143, 203)   47   47.0%  100.0%  #####
-[203, 287)    0    0.0%  100.0%  
-[287, 406)    0    0.0%  100.0%  
-[406, 574)    0    0.0%  100.0%  
-[574, inf)    0    0.0%  100.0%  
-Benchmark___10B_mux___1K_chunks___10B-2	     300	  22274569 ns/op	   0.00 MB/s
-Histogram (unit: ms)
-Count: 300  Min: 2  Max: 96  Avg: 21.75
-------------------------------------------------------------
-[  2,   3)    8    2.7%    2.7%  
-[  3,   4)   23    7.7%   10.3%  #
-[  4,   5)   31   10.3%   20.7%  #
-[  5,   7)   47   15.7%   36.3%  ##
-[  7,  10)   74   24.7%   61.0%  ##
-[ 10,  14)   33   11.0%   72.0%  #
-[ 14,  20)   12    4.0%   76.0%  
-[ 20,  28)    7    2.3%   78.3%  
-[ 28,  39)    1    0.3%   78.7%  
-[ 39,  54)    4    1.3%   80.0%  
-[ 54,  74)   20    6.7%   86.7%  #
-[ 74, 101)   40   13.3%  100.0%  #
-[101, 138)    0    0.0%  100.0%  
-[138, 189)    0    0.0%  100.0%  
-[189, 258)    0    0.0%  100.0%  
-[258, 352)    0    0.0%  100.0%  
-[352, inf)    0    0.0%  100.0%  
-Benchmark___10B_mux___1K_chunks__100B	     100	 143814971 ns/op	   0.00 MB/s
-Histogram (unit: ms)
-Count: 100  Min: 14  Max: 204  Avg: 143.32
-------------------------------------------------------------
-[ 14,  15)    1    1.0%    1.0%  
-[ 15,  16)    0    0.0%    1.0%  
-[ 16,  18)    0    0.0%    1.0%  
-[ 18,  20)    0    0.0%    1.0%  
-[ 20,  24)    0    0.0%    1.0%  
-[ 24,  29)    0    0.0%    1.0%  
-[ 29,  37)    0    0.0%    1.0%  
-[ 37,  48)    0    0.0%    1.0%  
-[ 48,  64)   11   11.0%   12.0%  #
-[ 64,  87)   15   15.0%   27.0%  ##
-[ 87, 120)    2    2.0%   29.0%  
-[120, 166)   26   26.0%   55.0%  ###
-[166, 232)   45   45.0%  100.0%  #####
-[232, 326)    0    0.0%  100.0%  
-[326, 459)    0    0.0%  100.0%  
-[459, 649)    0    0.0%  100.0%  
-[649, inf)    0    0.0%  100.0%  
-Benchmark___10B_mux___1K_chunks__100B-2	     200	  34125016 ns/op	   0.00 MB/s
-Histogram (unit: ms)
-Count: 200  Min: 2  Max: 114  Avg: 33.62
-------------------------------------------------------------
-[  2,   3)   10    5.0%    5.0%  #
-[  3,   4)    6    3.0%    8.0%  
-[  4,   5)   10    5.0%   13.0%  #
-[  5,   7)   21   10.5%   23.5%  #
-[  7,  10)   26   13.0%   36.5%  #
-[ 10,  14)   34   17.0%   53.5%  ##
-[ 14,  20)   27   13.5%   67.0%  #
-[ 20,  29)    7    3.5%   70.5%  
-[ 29,  41)    1    0.5%   71.0%  
-[ 41,  57)    2    1.0%   72.0%  
-[ 57,  80)    7    3.5%   75.5%  
-[ 80, 111)   45   22.5%   98.0%  ##
-[111, 154)    4    2.0%  100.0%  
-[154, 213)    0    0.0%  100.0%  
-[213, 294)    0    0.0%  100.0%  
-[294, 405)    0    0.0%  100.0%  
-[405, inf)    0    0.0%  100.0%  
-Benchmark___10B_mux___1K_chunks___1KB	     100	 136987808 ns/op	   0.00 MB/s
-Histogram (unit: ms)
-Count: 100  Min: 5  Max: 233  Avg: 136.46
-------------------------------------------------------------
-[  5,   6)    1    1.0%    1.0%  
-[  6,   7)    0    0.0%    1.0%  
-[  7,   9)    1    1.0%    2.0%  
-[  9,  11)    1    1.0%    3.0%  
-[ 11,  15)    1    1.0%    4.0%  
-[ 15,  21)    3    3.0%    7.0%  
-[ 21,  29)    0    0.0%    7.0%  
-[ 29,  41)    0    0.0%    7.0%  
-[ 41,  59)    3    3.0%   10.0%  
-[ 59,  84)   11   11.0%   21.0%  #
-[ 84, 121)   24   24.0%   45.0%  ##
-[121, 174)   25   25.0%   70.0%  ###
-[174, 250)   30   30.0%  100.0%  ###
-[250, 360)    0    0.0%  100.0%  
-[360, 518)    0    0.0%  100.0%  
-[518, 746)    0    0.0%  100.0%  
-[746, inf)    0    0.0%  100.0%  
-Benchmark___10B_mux___1K_chunks___1KB-2	     200	  35831221 ns/op	   0.00 MB/s
-Histogram (unit: ms)
-Count: 200  Min: 2  Max: 123  Avg: 35.40
-------------------------------------------------------------
-[  2,   3)   21   10.5%   10.5%  #
-[  3,   4)   12    6.0%   16.5%  #
-[  4,   5)    4    2.0%   18.5%  
-[  5,   7)    8    4.0%   22.5%  
-[  7,  10)   18    9.0%   31.5%  #
-[ 10,  14)   21   10.5%   42.0%  #
-[ 14,  20)   21   10.5%   52.5%  #
-[ 20,  29)    7    3.5%   56.0%  
-[ 29,  41)   11    5.5%   61.5%  #
-[ 41,  58)   23   11.5%   73.0%  #
-[ 58,  82)   28   14.0%   87.0%  #
-[ 82, 115)   25   12.5%   99.5%  #
-[115, 161)    1    0.5%  100.0%  
-[161, 224)    0    0.0%  100.0%  
-[224, 311)    0    0.0%  100.0%  
-[311, 432)    0    0.0%  100.0%  
-[432, inf)    0    0.0%  100.0%  
-Benchmark__100B_mux__100_chunks___10B	     500	  20748811 ns/op	   0.01 MB/s
-Histogram (unit: ms)
-Count: 500  Min: 6  Max: 27  Avg: 20.33
-------------------------------------------------------------
-[  6,   7)    1    0.2%    0.2%  
-[  7,   8)   16    3.2%    3.4%  
-[  8,   9)    3    0.6%    4.0%  
-[  9,  10)    6    1.2%    5.2%  
-[ 10,  12)    4    0.8%    6.0%  
-[ 12,  14)    0    0.0%    6.0%  
-[ 14,  17)    7    1.4%    7.4%  
-[ 17,  21)  181   36.2%   43.6%  ####
-[ 21,  26)  278   55.6%   99.2%  ######
-[ 26,  32)    4    0.8%  100.0%  
-[ 32,  39)    0    0.0%  100.0%  
-[ 39,  48)    0    0.0%  100.0%  
-[ 48,  59)    0    0.0%  100.0%  
-[ 59,  72)    0    0.0%  100.0%  
-[ 72,  89)    0    0.0%  100.0%  
-[ 89, 109)    0    0.0%  100.0%  
-[109, inf)    0    0.0%  100.0%  
-Benchmark__100B_mux__100_chunks___10B-2	    1000	   7604070 ns/op	   0.03 MB/s
-Histogram (unit: ms)
-Count: 1000  Min: 2  Max: 15  Avg: 7.10
-------------------------------------------------------------
-[  2,   3)    49    4.9%    4.9%  
-[  3,   4)    90    9.0%   13.9%  #
-[  4,   5)   124   12.4%   26.3%  #
-[  5,   6)   117   11.7%   38.0%  #
-[  6,   7)   100   10.0%   48.0%  #
-[  7,   9)   185   18.5%   66.5%  ##
-[  9,  11)   169   16.9%   83.4%  ##
-[ 11,  14)   141   14.1%   97.5%  #
-[ 14,  17)    25    2.5%  100.0%  
-[ 17,  21)     0    0.0%  100.0%  
-[ 21,  26)     0    0.0%  100.0%  
-[ 26,  32)     0    0.0%  100.0%  
-[ 32,  39)     0    0.0%  100.0%  
-[ 39,  48)     0    0.0%  100.0%  
-[ 48,  58)     0    0.0%  100.0%  
-[ 58,  70)     0    0.0%  100.0%  
-[ 70, inf)     0    0.0%  100.0%  
-Benchmark__100B_mux__100_chunks__100B	     300	  21922577 ns/op	   0.01 MB/s
-Histogram (unit: ms)
-Count: 300  Min: 6  Max: 30  Avg: 21.45
-------------------------------------------------------------
-[  6,   7)   17    5.7%    5.7%  #
-[  7,   8)    2    0.7%    6.3%  
-[  8,   9)    4    1.3%    7.7%  
-[  9,  10)    0    0.0%    7.7%  
-[ 10,  12)    9    3.0%   10.7%  
-[ 12,  14)    2    0.7%   11.3%  
-[ 14,  17)    1    0.3%   11.7%  
-[ 17,  21)   26    8.7%   20.3%  #
-[ 21,  26)  144   48.0%   68.3%  #####
-[ 26,  32)   95   31.7%  100.0%  ###
-[ 32,  40)    0    0.0%  100.0%  
-[ 40,  50)    0    0.0%  100.0%  
-[ 50,  62)    0    0.0%  100.0%  
-[ 62,  77)    0    0.0%  100.0%  
-[ 77,  96)    0    0.0%  100.0%  
-[ 96, 120)    0    0.0%  100.0%  
-[120, inf)    0    0.0%  100.0%  
-Benchmark__100B_mux__100_chunks__100B-2	    1000	   9164254 ns/op	   0.02 MB/s
-Histogram (unit: ms)
-Count: 1000  Min: 2  Max: 18  Avg: 8.66
-------------------------------------------------------------
-[  2,   3)    35    3.5%    3.5%  
-[  3,   4)    44    4.4%    7.9%  
-[  4,   5)    78    7.8%   15.7%  #
-[  5,   6)   102   10.2%   25.9%  #
-[  6,   8)   168   16.8%   42.7%  ##
-[  8,  10)   155   15.5%   58.2%  ##
-[ 10,  13)   236   23.6%   81.8%  ##
-[ 13,  16)   137   13.7%   95.5%  #
-[ 16,  20)    45    4.5%  100.0%  
-[ 20,  25)     0    0.0%  100.0%  
-[ 25,  31)     0    0.0%  100.0%  
-[ 31,  38)     0    0.0%  100.0%  
-[ 38,  47)     0    0.0%  100.0%  
-[ 47,  58)     0    0.0%  100.0%  
-[ 58,  71)     0    0.0%  100.0%  
-[ 71,  87)     0    0.0%  100.0%  
-[ 87, inf)     0    0.0%  100.0%  
-Benchmark__100B_mux__100_chunks___1KB	     300	  23892634 ns/op	   0.01 MB/s
-Histogram (unit: ms)
-Count: 300  Min: 6  Max: 31  Avg: 23.41
-------------------------------------------------------------
-[  6,   7)   12    4.0%    4.0%  
-[  7,   8)    9    3.0%    7.0%  
-[  8,   9)    5    1.7%    8.7%  
-[  9,  10)    1    0.3%    9.0%  
-[ 10,  12)    1    0.3%    9.3%  
-[ 12,  14)    2    0.7%   10.0%  
-[ 14,  17)    1    0.3%   10.3%  
-[ 17,  21)   10    3.3%   13.7%  
-[ 21,  26)  122   40.7%   54.3%  ####
-[ 26,  32)  137   45.7%  100.0%  #####
-[ 32,  40)    0    0.0%  100.0%  
-[ 40,  50)    0    0.0%  100.0%  
-[ 50,  63)    0    0.0%  100.0%  
-[ 63,  79)    0    0.0%  100.0%  
-[ 79,  99)    0    0.0%  100.0%  
-[ 99, 123)    0    0.0%  100.0%  
-[123, inf)    0    0.0%  100.0%  
-Benchmark__100B_mux__100_chunks___1KB-2	    1000	   9288578 ns/op	   0.02 MB/s
-Histogram (unit: ms)
-Count: 1000  Min: 1  Max: 19  Avg: 8.80
-------------------------------------------------------------
-[  1,   2)     6    0.6%    0.6%  
-[  2,   3)   158   15.8%   16.4%  ##
-[  3,   4)    70    7.0%   23.4%  #
-[  4,   5)    54    5.4%   28.8%  #
-[  5,   7)   110   11.0%   39.8%  #
-[  7,   9)    83    8.3%   48.1%  #
-[  9,  12)   183   18.3%   66.4%  ##
-[ 12,  15)   142   14.2%   80.6%  #
-[ 15,  19)   193   19.3%   99.9%  ##
-[ 19,  24)     1    0.1%  100.0%  
-[ 24,  30)     0    0.0%  100.0%  
-[ 30,  38)     0    0.0%  100.0%  
-[ 38,  48)     0    0.0%  100.0%  
-[ 48,  60)     0    0.0%  100.0%  
-[ 60,  74)     0    0.0%  100.0%  
-[ 74,  91)     0    0.0%  100.0%  
-[ 91, inf)     0    0.0%  100.0%  
-Benchmark__100B_mux___1K_chunks___10B	     100	 120357166 ns/op	   0.00 MB/s
-Histogram (unit: ms)
-Count: 100  Min: 4  Max: 186  Avg: 119.88
-------------------------------------------------------------
-[  4,   5)    1    1.0%    1.0%  
-[  5,   6)    0    0.0%    1.0%  
-[  6,   8)    0    0.0%    1.0%  
-[  8,  10)    0    0.0%    1.0%  
-[ 10,  14)    0    0.0%    1.0%  
-[ 14,  19)    1    1.0%    2.0%  
-[ 19,  27)    0    0.0%    2.0%  
-[ 27,  38)    0    0.0%    2.0%  
-[ 38,  54)    3    3.0%    5.0%  
-[ 54,  76)   22   22.0%   27.0%  ##
-[ 76, 108)   16   16.0%   43.0%  ##
-[108, 153)   18   18.0%   61.0%  ##
-[153, 217)   39   39.0%  100.0%  ####
-[217, 307)    0    0.0%  100.0%  
-[307, 435)    0    0.0%  100.0%  
-[435, 616)    0    0.0%  100.0%  
-[616, inf)    0    0.0%  100.0%  
-Benchmark__100B_mux___1K_chunks___10B-2	     300	  23110788 ns/op	   0.01 MB/s
-Histogram (unit: ms)
-Count: 300  Min: 2  Max: 97  Avg: 22.60
-------------------------------------------------------------
-[  2,   3)    7    2.3%    2.3%  
-[  3,   4)   26    8.7%   11.0%  #
-[  4,   5)   33   11.0%   22.0%  #
-[  5,   7)   45   15.0%   37.0%  ##
-[  7,  10)   46   15.3%   52.3%  ##
-[ 10,  14)   48   16.0%   68.3%  ##
-[ 14,  20)   19    6.3%   74.7%  #
-[ 20,  28)    8    2.7%   77.3%  
-[ 28,  39)    3    1.0%   78.3%  
-[ 39,  54)    2    0.7%   79.0%  
-[ 54,  74)   32   10.7%   89.7%  #
-[ 74, 102)   31   10.3%  100.0%  #
-[102, 140)    0    0.0%  100.0%  
-[140, 191)    0    0.0%  100.0%  
-[191, 261)    0    0.0%  100.0%  
-[261, 355)    0    0.0%  100.0%  
-[355, inf)    0    0.0%  100.0%  
-Benchmark__100B_mux___1K_chunks__100B	     100	 146211502 ns/op	   0.00 MB/s
-Histogram (unit: ms)
-Count: 100  Min: 11  Max: 220  Avg: 145.68
-------------------------------------------------------------
-[ 11,  12)    1    1.0%    1.0%  
-[ 12,  13)    1    1.0%    2.0%  
-[ 13,  15)    0    0.0%    2.0%  
-[ 15,  17)    0    0.0%    2.0%  
-[ 17,  21)    0    0.0%    2.0%  
-[ 21,  26)    0    0.0%    2.0%  
-[ 26,  34)    1    1.0%    3.0%  
-[ 34,  46)    1    1.0%    4.0%  
-[ 46,  63)   10   10.0%   14.0%  #
-[ 63,  87)   12   12.0%   26.0%  #
-[ 87, 122)    9    9.0%   35.0%  #
-[122, 172)   19   19.0%   54.0%  ##
-[172, 243)   46   46.0%  100.0%  #####
-[243, 345)    0    0.0%  100.0%  
-[345, 491)    0    0.0%  100.0%  
-[491, 700)    0    0.0%  100.0%  
-[700, inf)    0    0.0%  100.0%  
-Benchmark__100B_mux___1K_chunks__100B-2	     200	  36485527 ns/op	   0.01 MB/s
-Histogram (unit: ms)
-Count: 200  Min: 2  Max: 114  Avg: 36.01
-------------------------------------------------------------
-[  2,   3)   12    6.0%    6.0%  #
-[  3,   4)    7    3.5%    9.5%  
-[  4,   5)    3    1.5%   11.0%  
-[  5,   7)   17    8.5%   19.5%  #
-[  7,  10)   28   14.0%   33.5%  #
-[ 10,  14)   29   14.5%   48.0%  #
-[ 14,  20)   25   12.5%   60.5%  #
-[ 20,  29)   13    6.5%   67.0%  #
-[ 29,  41)    5    2.5%   69.5%  
-[ 41,  57)    0    0.0%   69.5%  
-[ 57,  80)    6    3.0%   72.5%  
-[ 80, 111)   53   26.5%   99.0%  ###
-[111, 154)    2    1.0%  100.0%  
-[154, 213)    0    0.0%  100.0%  
-[213, 294)    0    0.0%  100.0%  
-[294, 405)    0    0.0%  100.0%  
-[405, inf)    0    0.0%  100.0%  
-Benchmark__100B_mux___1K_chunks___1KB	     100	 145242261 ns/op	   0.00 MB/s
-Histogram (unit: ms)
-Count: 100  Min: 7  Max: 235  Avg: 144.71
-------------------------------------------------------------
-[  7,   8)    1    1.0%    1.0%  
-[  8,   9)    2    2.0%    3.0%  
-[  9,  11)    1    1.0%    4.0%  
-[ 11,  13)    1    1.0%    5.0%  
-[ 13,  17)    0    0.0%    5.0%  
-[ 17,  23)    2    2.0%    7.0%  
-[ 23,  31)    1    1.0%    8.0%  
-[ 31,  43)    0    0.0%    8.0%  
-[ 43,  61)    1    1.0%    9.0%  
-[ 61,  86)   10   10.0%   19.0%  #
-[ 86, 123)   24   24.0%   43.0%  ##
-[123, 176)   24   24.0%   67.0%  ##
-[176, 252)   33   33.0%  100.0%  ###
-[252, 362)    0    0.0%  100.0%  
-[362, 520)    0    0.0%  100.0%  
-[520, 748)    0    0.0%  100.0%  
-[748, inf)    0    0.0%  100.0%  
-Benchmark__100B_mux___1K_chunks___1KB-2	     200	  37420006 ns/op	   0.01 MB/s
-Histogram (unit: ms)
-Count: 200  Min: 2  Max: 125  Avg: 36.95
-------------------------------------------------------------
-[  2,   3)   37   18.5%   18.5%  ##
-[  3,   4)    6    3.0%   21.5%  
-[  4,   5)    2    1.0%   22.5%  
-[  5,   7)   16    8.0%   30.5%  #
-[  7,  10)    8    4.0%   34.5%  
-[ 10,  14)   16    8.0%   42.5%  #
-[ 14,  20)   14    7.0%   49.5%  #
-[ 20,  29)   12    6.0%   55.5%  #
-[ 29,  42)   13    6.5%   62.0%  #
-[ 42,  59)   20   10.0%   72.0%  #
-[ 59,  83)   22   11.0%   83.0%  #
-[ 83, 117)   30   15.0%   98.0%  ##
-[117, 163)    4    2.0%  100.0%  
-[163, 227)    0    0.0%  100.0%  
-[227, 316)    0    0.0%  100.0%  
-[316, 438)    0    0.0%  100.0%  
-[438, inf)    0    0.0%  100.0%  
diff --git a/runtimes/google/ipc/benchmarks/bm/main.go b/runtimes/google/ipc/benchmarks/bm/main.go
deleted file mode 100644
index 4a12cc0..0000000
--- a/runtimes/google/ipc/benchmarks/bm/main.go
+++ /dev/null
@@ -1,187 +0,0 @@
-// A simple command-line tool to run IPC benchmarks.
-package main
-
-import (
-	"flag"
-	"fmt"
-	"os"
-	"runtime"
-	"strconv"
-	"strings"
-	"testing"
-
-	"v.io/core/veyron/lib/testutil"
-	"v.io/core/veyron/profiles"
-	"v.io/core/veyron/runtimes/google/ipc/benchmarks"
-
-	"v.io/core/veyron2"
-	"v.io/core/veyron2/rt"
-)
-
-var (
-	vrt     veyron2.Runtime
-	address string
-
-	cpuList []int
-
-	histogram = flag.Bool("histogram", false, "If ture, output histogram of the benchmark results.")
-)
-
-func runBenchmarkEcho() {
-	payloadSizes := []int{1, 10, 100, 1000, 10000, 100000}
-
-	for _, size := range payloadSizes {
-		name := fmt.Sprintf("%sB", formatNum(size))
-		runBenchmark(name, func(b *testing.B, stats *testutil.BenchStats) {
-			benchmarks.CallEcho(b, vrt.NewContext(), address, b.N, size, stats)
-		})
-	}
-}
-
-func runBenchmarkEchoStream() {
-	chunkCnts := []int{1, 10, 100, 1000}
-	payloadSizes := []int{1, 10, 100, 1000, 10000, 100000}
-
-	for _, cnt := range chunkCnts {
-		for _, size := range payloadSizes {
-			name := formatNum(cnt)
-			if cnt == 1 {
-				name += "_chunk_"
-			} else {
-				name += "_chunks"
-			}
-			name += fmt.Sprintf("%sB", formatNum(size))
-			runBenchmark(name, func(b *testing.B, stats *testutil.BenchStats) {
-				benchmarks.CallEchoStream(b, vrt.NewContext(), address, b.N, cnt, size, stats)
-			})
-		}
-	}
-}
-
-func runBenchmarkEchoStreamPerChunk() {
-	payloadSizes := []int{1, 10, 100, 1000, 10000, 100000}
-
-	for _, size := range payloadSizes {
-		name := fmt.Sprintf("__per_chunk%sB", formatNum(size))
-		runBenchmark(name, func(b *testing.B, stats *testutil.BenchStats) {
-			benchmarks.CallEchoStream(b, vrt.NewContext(), address, 1, b.N, size, stats)
-		})
-	}
-}
-
-func runBenchmarkMux() {
-	payloadSizes := []int{10, 100}
-
-	chunkCntsB := []int{100, 1000}
-	payloadSizesB := []int{10, 100, 1000}
-
-	for _, size := range payloadSizes {
-		for _, cntB := range chunkCntsB {
-			for _, sizeB := range payloadSizesB {
-				name := fmt.Sprintf("%sB_mux%s", formatNum(size), formatNum(cntB))
-				if cntB == 1 {
-					name += "_chunk_"
-				} else {
-					name += "_chunks"
-				}
-				name += fmt.Sprintf("%sB", formatNum(sizeB))
-				runBenchmark(name, func(b *testing.B, stats *testutil.BenchStats) {
-					dummyB := testing.B{}
-					_, stop := benchmarks.StartEchoStream(&dummyB, vrt.NewContext(), address, 0, cntB, sizeB, nil)
-
-					b.ResetTimer()
-					benchmarks.CallEcho(b, vrt.NewContext(), address, b.N, size, stats)
-					b.StopTimer()
-
-					stop()
-				})
-			}
-		}
-	}
-}
-
-// runBenchmark runs a single bencmark function 'f'.
-func runBenchmark(name string, f func(*testing.B, *testutil.BenchStats)) {
-	for _, cpu := range cpuList {
-		runtime.GOMAXPROCS(cpu)
-
-		benchName := "Benchmark" + name
-		if cpu != 1 {
-			benchName += fmt.Sprintf("-%d", cpu)
-		}
-
-		var stats *testutil.BenchStats
-		if *histogram {
-			stats = testutil.NewBenchStats(16)
-		}
-
-		r := testing.Benchmark(func(b *testing.B) {
-			f(b, stats)
-		})
-
-		fmt.Printf("%s\t%s\n", benchName, r)
-		if stats != nil {
-			stats.Print(os.Stdout)
-		}
-	}
-}
-
-// formatNum formats the given number n with an optional metric prefix
-// and padding with underscores if necessary.
-func formatNum(n int) string {
-	value := float32(n)
-	var prefix string
-	for _, p := range []string{"", "K", "M", "G", "T"} {
-		if value < 1000 {
-			prefix = p
-			break
-		}
-		value /= 1000
-	}
-
-	return strings.Replace(fmt.Sprintf("%*.0f%s", 5-len(prefix), value, prefix), " ", "_", -1)
-}
-
-// parseCpuList looks up the existing '-test.cpu' flag value and parses it into
-// the list of cpus.
-func parseCpuList() {
-	for _, v := range strings.Split(flag.Lookup("test.cpu").Value.String(), ",") {
-		v = strings.TrimSpace(v)
-		if v == "" {
-			continue
-		}
-		cpu, err := strconv.Atoi(v)
-		if err != nil || cpu <= 0 {
-			fmt.Fprintf(os.Stderr, "invalid -test.cpu %q\n", v)
-			os.Exit(1)
-		}
-		cpuList = append(cpuList, cpu)
-	}
-	if cpuList == nil {
-		cpuList = append(cpuList, runtime.GOMAXPROCS(-1))
-	}
-}
-
-func main() {
-	flag.Parse()
-	parseCpuList()
-
-	var err error
-	vrt, err = rt.New()
-	if err != nil {
-		panic(err)
-	}
-	defer vrt.Cleanup()
-
-	var stop func()
-	address, stop = benchmarks.StartServer(vrt, profiles.LocalListenSpec)
-
-	benchmarks.CallEcho(&testing.B{}, vrt.NewContext(), address, 1, 0, nil) // Create VC.
-
-	runBenchmarkEcho()
-	runBenchmarkEchoStream()
-	runBenchmarkEchoStreamPerChunk()
-	runBenchmarkMux()
-
-	stop()
-}
diff --git a/runtimes/google/ipc/benchmarks/ipc_test.go b/runtimes/google/ipc/benchmarks/ipc_test.go
deleted file mode 100644
index b4455b3..0000000
--- a/runtimes/google/ipc/benchmarks/ipc_test.go
+++ /dev/null
@@ -1,141 +0,0 @@
-package benchmarks_test
-
-import (
-	"testing"
-
-	"v.io/core/veyron/profiles"
-	"v.io/core/veyron/runtimes/google/ipc/benchmarks"
-
-	"v.io/core/veyron2"
-	"v.io/core/veyron2/rt"
-)
-
-var vrt veyron2.Runtime
-var address string
-
-func init() {
-	var err error
-	vrt, err = rt.New()
-	if err != nil {
-		panic(err)
-	}
-
-	address, _ = benchmarks.StartServer(vrt, profiles.LocalListenSpec)
-}
-
-func runBenchmarkEcho(b *testing.B, payloadSize int) {
-	benchmarks.CallEcho(&testing.B{}, vrt.NewContext(), address, 1, 0, nil) // Create VC.
-	benchmarks.CallEcho(b, vrt.NewContext(), address, b.N, payloadSize, nil)
-}
-
-func runBenchmarkEchoStream(b *testing.B, iterations, chunkCnt, payloadSize int) {
-	benchmarks.CallEcho(&testing.B{}, vrt.NewContext(), address, 1, 0, nil) // Create VC.
-	benchmarks.CallEchoStream(b, vrt.NewContext(), address, iterations, chunkCnt, payloadSize, nil)
-}
-
-func runBenchmarkMux(b *testing.B, payloadSize, chunkCntB, payloadSizeB int) {
-	benchmarks.CallEcho(&testing.B{}, vrt.NewContext(), address, 1, 0, nil) // Create VC.
-	_, stop := benchmarks.StartEchoStream(&testing.B{}, vrt.NewContext(), address, 0, chunkCntB, payloadSizeB, nil)
-	benchmarks.CallEcho(b, vrt.NewContext(), address, b.N, payloadSize, nil)
-	stop()
-}
-
-// Benchmarks for non-streaming RPC.
-func Benchmark____1B(b *testing.B) {
-	runBenchmarkEcho(b, 1)
-}
-
-func Benchmark___10B(b *testing.B) {
-	runBenchmarkEcho(b, 10)
-}
-
-func Benchmark___1KB(b *testing.B) {
-	runBenchmarkEcho(b, 1000)
-}
-
-func Benchmark_100KB(b *testing.B) {
-	runBenchmarkEcho(b, 100000)
-}
-
-// Benchmarks for streaming RPC.
-func Benchmark____1_chunk_____1B(b *testing.B) {
-	runBenchmarkEchoStream(b, b.N, 1, 1)
-}
-
-func Benchmark____1_chunk____10B(b *testing.B) {
-	runBenchmarkEchoStream(b, b.N, 1, 10)
-}
-
-func Benchmark____1_chunk____1KB(b *testing.B) {
-	runBenchmarkEchoStream(b, b.N, 1, 1000)
-}
-
-func Benchmark____1_chunk___10KB(b *testing.B) {
-	runBenchmarkEchoStream(b, b.N, 1, 10000)
-}
-
-func Benchmark___10_chunks____1B(b *testing.B) {
-	runBenchmarkEchoStream(b, b.N, 10, 1)
-}
-
-func Benchmark___10_chunks___10B(b *testing.B) {
-	runBenchmarkEchoStream(b, b.N, 10, 10)
-}
-
-func Benchmark___10_chunks___1KB(b *testing.B) {
-	runBenchmarkEchoStream(b, b.N, 10, 1000)
-}
-
-func Benchmark___10_chunks__10KB(b *testing.B) {
-	runBenchmarkEchoStream(b, b.N, 10, 10000)
-}
-
-func Benchmark__100_chunks____1B(b *testing.B) {
-	runBenchmarkEchoStream(b, b.N, 100, 1)
-}
-
-func Benchmark__100_chunks___10B(b *testing.B) {
-	runBenchmarkEchoStream(b, b.N, 100, 10)
-}
-
-func Benchmark__100_chunks___1KB(b *testing.B) {
-	runBenchmarkEchoStream(b, b.N, 100, 1000)
-}
-
-func Benchmark__100_chunks__10KB(b *testing.B) {
-	runBenchmarkEchoStream(b, b.N, 100, 10000)
-}
-
-// Benchmarks for per-chunk throughput in streaming RPC.
-func Benchmark__per_chunk____1B(b *testing.B) {
-	runBenchmarkEchoStream(b, 1, b.N, 1)
-}
-
-func Benchmark__per_chunk___10B(b *testing.B) {
-	runBenchmarkEchoStream(b, 1, b.N, 10)
-}
-
-func Benchmark__per_chunk___1KB(b *testing.B) {
-	runBenchmarkEchoStream(b, 1, b.N, 1000)
-}
-
-func Benchmark__per_chunk__10KB(b *testing.B) {
-	runBenchmarkEchoStream(b, 1, b.N, 10000)
-}
-
-// Benchmarks for non-streaming RPC while running streaming RPC in background.
-func Benchmark____1B_mux___10_chunks___10B(b *testing.B) {
-	runBenchmarkMux(b, 1, 10, 10)
-}
-
-func Benchmark____1B_mux___10_chunks___1KB(b *testing.B) {
-	runBenchmarkMux(b, 1, 10, 1000)
-}
-
-func Benchmark____1B_mux__100_chunks___10B(b *testing.B) {
-	runBenchmarkMux(b, 1, 100, 10)
-}
-
-func Benchmark____1B_mux__100_chunks___1KB(b *testing.B) {
-	runBenchmarkMux(b, 1, 100, 1000)
-}
diff --git a/runtimes/google/ipc/stream/benchmark/RESULTS.txt b/runtimes/google/ipc/stream/benchmark/RESULTS.txt
index 826e4de..b60e4ed 100644
--- a/runtimes/google/ipc/stream/benchmark/RESULTS.txt
+++ b/runtimes/google/ipc/stream/benchmark/RESULTS.txt
@@ -1,96 +1,72 @@
-Date: 12/14/2014
+Date: 01/06/2015
 Platform: Intel(R) Xeon(R) CPU E5-2689 0 @ 2.60GHz,  66114888KB Memory
 
-$ veyron go test -test.bench=. -test.cpu=1 -test.benchtime=5s \
+$ v23 go test -bench=. -cpu=1 -benchtime=5s \
   v.io/core/veyron/runtimes/google/ipc/stream/benchmark
 
-Benchmark_throughput_TCP_1Conn   1000000              9874 ns/op        5184.85 MB/s
-Benchmark_throughput_TCP_2Conns  1000000              9815 ns/op        5216.01 MB/s
-Benchmark_throughput_TCP_4Conns  1000000             10088 ns/op        5074.94 MB/s
-Benchmark_throughput_TCP_8Conns   500000             12228 ns/op        4186.82 MB/s
-Benchmark_throughput_Pipe_1Conn   500000             24337 ns/op        2103.72 MB/s
-Benchmark_throughput_Pipe_2Conns          500000             28723 ns/op        1782.52 MB/s
-Benchmark_throughput_Pipe_4Conns          500000             28823 ns/op        1776.32 MB/s
-Benchmark_throughput_Pipe_8Conns          500000             27081 ns/op        1890.57 MB/s
-Benchmark_throughput_Flow_1VIF_1VC_1Flow          200000             31567 ns/op        1621.93 MB/s
-Benchmark_throughput_Flow_1VIF_1VC_2Flow          200000             31626 ns/op        1618.90 MB/s
-Benchmark_throughput_Flow_1VIF_1VC_8Flow          200000             36366 ns/op        1407.88 MB/s
-Benchmark_throughput_Flow_1VIF_2VC_2Flow          200000             32417 ns/op        1579.41 MB/s
-Benchmark_throughput_Flow_1VIF_2VC_8Flow          200000             35595 ns/op        1438.37 MB/s
-Benchmark_throughput_Flow_2VIF_4VC_8Flow          200000             38216 ns/op        1339.73 MB/s
-Benchmark_throughput_TLS_1Conn     20000            426727 ns/op         119.98 MB/s
-Benchmark_throughput_TLS_2Conns    20000            419540 ns/op         122.04 MB/s
-Benchmark_throughput_TLS_4Conns    20000            428137 ns/op         119.59 MB/s
-Benchmark_throughput_TLS_8Conns    20000            426041 ns/op         120.18 MB/s
-Benchmark_throughput_Flow_1VIF_1VC_1FlowTLS        20000            470284 ns/op         108.87 MB/s
-Benchmark_throughput_Flow_1VIF_1VC_2FlowTLS        20000            473181 ns/op         108.20 MB/s
-Benchmark_throughput_Flow_1VIF_1VC_8FlowTLS        20000            482533 ns/op         106.11 MB/s
-Benchmark_throughput_Flow_1VIF_2VC_2FlowTLS        20000            472181 ns/op         108.43 MB/s
-Benchmark_throughput_Flow_1VIF_2VC_8FlowTLS        20000            480154 ns/op         106.63 MB/s
-Benchmark_throughput_Flow_2VIF_4VC_8FlowTLS        20000            481803 ns/op         106.27 MB/s
-
-Benchmark_dial_VIF      500000             15965 ns/op
-Histogram (unit: µs)
-Count: 500000  Min: 4  Max: 19523  Avg: 15.31
-------------------------------------------------------------
-[    4,     5)    9404    1.9%    1.9%  
-[    5,     6)  320133   64.0%   65.9%  ######
-[    6,     9)  157038   31.4%   97.3%  ###
-[    9,    16)    8766    1.8%   99.1%  
-[   16,    29)    3348    0.7%   99.7%  
-[   29,    55)     134    0.0%   99.8%  
-[   55,   107)      50    0.0%   99.8%  
-[  107,   207)       7    0.0%   99.8%  
-[  207,   401)       0    0.0%   99.8%  
-[  401,   776)       1    0.0%   99.8%  
-[  776,  1500)     120    0.0%   99.8%  
-[ 1500,  2900)     138    0.0%   99.8%  
-[ 2900,  5606)     681    0.1%  100.0%  
-[ 5606, 10834)     167    0.0%  100.0%  
-[10834, 20936)      13    0.0%  100.0%  
-[20936, 40454)       0    0.0%  100.0%  
-[40454,   inf)       0    0.0%  100.0%  
-
-Benchmark_dial_VIF_TLS  500          12015788 ns/op
-Histogram (unit: ms)
-Count: 500  Min: 11  Max: 13  Avg: 11.34
-------------------------------------------------------------
-[ 11,  12)  350   70.0%   70.0%  #######
-[ 12,  13)  132   26.4%   96.4%  ###
-[ 13,  14)   18    3.6%  100.0%  
-[ 14,  15)    0    0.0%  100.0%  
-[ 15,  16)    0    0.0%  100.0%  
-[ 16,  17)    0    0.0%  100.0%  
-[ 17,  18)    0    0.0%  100.0%  
-[ 18,  19)    0    0.0%  100.0%  
-[ 19,  20)    0    0.0%  100.0%  
-[ 20,  21)    0    0.0%  100.0%  
-[ 21,  22)    0    0.0%  100.0%  
-[ 22,  23)    0    0.0%  100.0%  
-[ 23,  24)    0    0.0%  100.0%  
-[ 24,  25)    0    0.0%  100.0%  
-[ 25,  26)    0    0.0%  100.0%  
-[ 26,  27)    0    0.0%  100.0%  
-[ 27, inf)    0    0.0%  100.0%  
-
-Benchmark_dial_VC_TLS   500          15909783 ns/op
-Histogram (unit: ms)
-Count: 500  Min: 15  Max: 20  Avg: 15.41
-------------------------------------------------------------
-[ 15,  16)  356   71.2%   71.2%  #######
-[ 16,  17)   92   18.4%   89.6%  ##
-[ 17,  18)   47    9.4%   99.0%  #
-[ 18,  19)    4    0.8%   99.8%  
-[ 19,  20)    0    0.0%   99.8%  
-[ 20,  21)    1    0.2%  100.0%  
-[ 21,  22)    0    0.0%  100.0%  
-[ 22,  24)    0    0.0%  100.0%  
-[ 24,  26)    0    0.0%  100.0%  
-[ 26,  28)    0    0.0%  100.0%  
-[ 28,  30)    0    0.0%  100.0%  
-[ 30,  33)    0    0.0%  100.0%  
-[ 33,  36)    0    0.0%  100.0%  
-[ 36,  40)    0    0.0%  100.0%  
-[ 40,  44)    0    0.0%  100.0%  
-[ 44,  48)    0    0.0%  100.0%  
-[ 48, inf)    0    0.0%  100.0%  
+Benchmark_dial_VIF	  500000	     15356 ns/op
+--- Histogram (unit: s)
+	Count: 500000  Min: 4  Max: 15644  Avg: 14.66
+	------------------------------------------------------------
+	[    4,     5)   47181    9.4%    9.4%  #
+	[    5,     6)  314973   63.0%   72.4%  ######
+	[    6,     9)  123582   24.7%   97.1%  ##
+	[    9,    15)   10991    2.2%   99.3%  
+	[   15,    28)    2038    0.4%   99.8%  
+	[   28,    53)     129    0.0%   99.8%  
+	[   53,   100)      53    0.0%   99.8%  
+	[  100,   190)      12    0.0%   99.8%  
+	[  190,   362)       0    0.0%   99.8%  
+	[  362,   690)       1    0.0%   99.8%  
+	[  690,  1315)      38    0.0%   99.8%  
+	[ 1315,  2505)     165    0.0%   99.8%  
+	[ 2505,  4771)     487    0.1%   99.9%  
+	[ 4771,  9086)     326    0.1%  100.0%  
+	[ 9086, 17301)      24    0.0%  100.0%  
+	[17301, 32941)       0    0.0%  100.0%  
+	[32941,   inf)       0    0.0%  100.0%  
+Benchmark_dial_VIF_TLS	     500	  12681088 ns/op
+--- Histogram (unit: ms)
+	Count: 500  Min: 12  Max: 16  Avg: 12.31
+	------------------------------------------------------------
+	[ 12,  13)  357   71.4%   71.4%  #######
+	[ 13,  14)  133   26.6%   98.0%  ###
+	[ 14,  15)    7    1.4%   99.4%  
+	[ 15,  16)    2    0.4%   99.8%  
+	[ 16, inf)    1    0.2%  100.0%  
+Benchmark_dial_VC_TLS	     500	  16224331 ns/op
+--- Histogram (unit: ms)
+	Count: 500  Min: 15  Max: 22  Avg: 15.60
+	------------------------------------------------------------
+	[ 15,  16)  279   55.8%   55.8%  ######
+	[ 16,  17)  152   30.4%   86.2%  ###
+	[ 17,  18)   62   12.4%   98.6%  #
+	[ 18,  19)    6    1.2%   99.8%  
+	[ 19,  20)    0    0.0%   99.8%  
+	[ 20,  21)    0    0.0%   99.8%  
+	[ 21,  23)    1    0.2%  100.0%  
+	[ 23, inf)    0    0.0%  100.0%  
+Benchmark_throughput_TCP_1Conn	 1000000	     10963 ns/op	4669.96 MB/s
+Benchmark_throughput_TCP_2Conns	 1000000	      9739 ns/op	5257.14 MB/s
+Benchmark_throughput_TCP_4Conns	  500000	     11896 ns/op	4303.82 MB/s
+Benchmark_throughput_TCP_8Conns	  500000	     12867 ns/op	3979.12 MB/s
+Benchmark_throughput_Pipe_1Conn	  300000	     28233 ns/op	1813.43 MB/s
+Benchmark_throughput_Pipe_2Conns	  500000	     25339 ns/op	2020.60 MB/s
+Benchmark_throughput_Pipe_4Conns	  300000	     26626 ns/op	1922.90 MB/s
+Benchmark_throughput_Pipe_8Conns	  500000	     27340 ns/op	1872.67 MB/s
+Benchmark_throughput_Flow_1VIF_1VC_1Flow	  200000	     32590 ns/op	1571.02 MB/s
+Benchmark_throughput_Flow_1VIF_1VC_2Flow	  200000	     32731 ns/op	1564.24 MB/s
+Benchmark_throughput_Flow_1VIF_1VC_8Flow	  200000	     41289 ns/op	1240.03 MB/s
+Benchmark_throughput_Flow_1VIF_2VC_2Flow	  200000	     33878 ns/op	1511.30 MB/s
+Benchmark_throughput_Flow_1VIF_2VC_8Flow	  200000	     40923 ns/op	1251.10 MB/s
+Benchmark_throughput_Flow_2VIF_4VC_8Flow	  200000	     42293 ns/op	1210.60 MB/s
+Benchmark_throughput_TLS_1Conn	   20000	    426157 ns/op	 120.14 MB/s
+Benchmark_throughput_TLS_2Conns	   20000	    421319 ns/op	 121.52 MB/s
+Benchmark_throughput_TLS_4Conns	   20000	    425284 ns/op	 120.39 MB/s
+Benchmark_throughput_TLS_8Conns	   20000	    426533 ns/op	 120.04 MB/s
+Benchmark_throughput_Flow_1VIF_1VC_1FlowTLS	   20000	    474126 ns/op	 107.99 MB/s
+Benchmark_throughput_Flow_1VIF_1VC_2FlowTLS	   20000	    472005 ns/op	 108.47 MB/s
+Benchmark_throughput_Flow_1VIF_1VC_8FlowTLS	   20000	    484625 ns/op	 105.65 MB/s
+Benchmark_throughput_Flow_1VIF_2VC_2FlowTLS	   20000	    483762 ns/op	 105.84 MB/s
+Benchmark_throughput_Flow_1VIF_2VC_8FlowTLS	   20000	    485164 ns/op	 105.53 MB/s
+Benchmark_throughput_Flow_2VIF_4VC_8FlowTLS	   20000	    493864 ns/op	 103.67 MB/s
diff --git a/runtimes/google/ipc/stream/benchmark/benchmark_test.go b/runtimes/google/ipc/stream/benchmark/benchmark_test.go
new file mode 100644
index 0000000..7122cf7
--- /dev/null
+++ b/runtimes/google/ipc/stream/benchmark/benchmark_test.go
@@ -0,0 +1,17 @@
+package benchmark
+
+import (
+	"os"
+	"testing"
+
+	"v.io/core/veyron/lib/testutil/benchmark"
+)
+
+// A single empty test to avoid:
+// testing: warning: no tests to run
+// from showing up when running benchmarks in this package via "go test"
+func TestNoOp(t *testing.T) {}
+
+func TestMain(m *testing.M) {
+	os.Exit(benchmark.RunTestMain(m))
+}
diff --git a/runtimes/google/ipc/stream/benchmark/dial_test.go b/runtimes/google/ipc/stream/benchmark/dial_test.go
index 7b835ad..a591009 100644
--- a/runtimes/google/ipc/stream/benchmark/dial_test.go
+++ b/runtimes/google/ipc/stream/benchmark/dial_test.go
@@ -2,9 +2,9 @@
 
 import "testing"
 
-func Benchmark_dial_VIF(b *testing.B)     { benchmarkVIFDial(b, securityNone) }
-func Benchmark_dial_VIF_TLS(b *testing.B) { benchmarkVIFDial(b, securityTLS) }
+func Benchmark_dial_VIF(b *testing.B)     { benchmarkDialVIF(b, securityNone) }
+func Benchmark_dial_VIF_TLS(b *testing.B) { benchmarkDialVIF(b, securityTLS) }
 
 // Note: We don't benchmark Non-TLC VC Dial for now since it doesn't wait ack
 // from the server after sending "OpenVC".
-func Benchmark_dial_VC_TLS(b *testing.B) { benchmarkVCDial(b, securityTLS) }
+func Benchmark_dial_VC_TLS(b *testing.B) { benchmarkDialVC(b, securityTLS) }
diff --git a/runtimes/google/ipc/stream/benchmark/dial_vc.go b/runtimes/google/ipc/stream/benchmark/dial_vc.go
index 3bdcb32..387e392 100644
--- a/runtimes/google/ipc/stream/benchmark/dial_vc.go
+++ b/runtimes/google/ipc/stream/benchmark/dial_vc.go
@@ -1,11 +1,10 @@
 package benchmark
 
 import (
-	"fmt"
 	"testing"
 	"time"
 
-	"v.io/core/veyron/lib/testutil"
+	"v.io/core/veyron/lib/testutil/benchmark"
 	_ "v.io/core/veyron/profiles/static"
 	"v.io/core/veyron/runtimes/google/ipc/stream/manager"
 
@@ -13,9 +12,9 @@
 	"v.io/core/veyron2/options"
 )
 
-// benchmarkVCDial measures VC creation time over the underlying VIF.
-func benchmarkVCDial(b *testing.B, mode options.VCSecurityLevel) {
-	stats := testutil.NewBenchStats(16)
+// benchmarkDialVC measures VC creation time over the underlying VIF.
+func benchmarkDialVC(b *testing.B, mode options.VCSecurityLevel) {
+	stats := benchmark.AddStats(b, 16)
 
 	server := manager.InternalNew(naming.FixedRoutingID(0x5))
 	client := manager.InternalNew(naming.FixedRoutingID(0xc))
@@ -31,8 +30,7 @@
 		b.Fatal(err)
 	}
 
-	// Reset the timer to exclude any underlying setup time from measurement.
-	b.ResetTimer()
+	b.ResetTimer() // Exclude setup time from measurement.
 
 	for i := 0; i < b.N; i++ {
 		b.StartTimer()
@@ -53,7 +51,4 @@
 
 	client.Shutdown()
 	server.Shutdown()
-
-	fmt.Println()
-	fmt.Println(stats)
 }
diff --git a/runtimes/google/ipc/stream/benchmark/dial_vif.go b/runtimes/google/ipc/stream/benchmark/dial_vif.go
index 4fce465..6413925 100644
--- a/runtimes/google/ipc/stream/benchmark/dial_vif.go
+++ b/runtimes/google/ipc/stream/benchmark/dial_vif.go
@@ -1,24 +1,22 @@
 package benchmark
 
 import (
-	"fmt"
 	"net"
 	"testing"
 	"time"
 
-	"v.io/core/veyron/lib/testutil"
+	"v.io/core/veyron/lib/testutil/benchmark"
 	"v.io/core/veyron/runtimes/google/ipc/stream/vif"
 
 	"v.io/core/veyron2/naming"
 	"v.io/core/veyron2/options"
 )
 
-// benchmarkVIFDial measures VIF creation time over the underlying net connection.
-func benchmarkVIFDial(b *testing.B, mode options.VCSecurityLevel) {
-	stats := testutil.NewBenchStats(16)
+// benchmarkDialVIF measures VIF creation time over the underlying net connection.
+func benchmarkDialVIF(b *testing.B, mode options.VCSecurityLevel) {
+	stats := benchmark.AddStats(b, 16)
 
-	// Reset the timer to exclude any underlying setup time from measurement.
-	b.ResetTimer()
+	b.ResetTimer() // Exclude setup time from measurement.
 
 	for i := 0; i < b.N; i++ {
 		b.StopTimer()
@@ -45,7 +43,4 @@
 		client.Close()
 		server.Close()
 	}
-
-	fmt.Println()
-	fmt.Println(stats)
 }
diff --git a/runtimes/google/ipc/stream/benchmark/throughput_test.go b/runtimes/google/ipc/stream/benchmark/throughput_test.go
index 9487f0a..76ad57d 100644
--- a/runtimes/google/ipc/stream/benchmark/throughput_test.go
+++ b/runtimes/google/ipc/stream/benchmark/throughput_test.go
@@ -34,8 +34,3 @@
 func Benchmark_throughput_Flow_1VIF_2VC_8FlowTLS(b *testing.B) { benchmarkFlow(b, securityTLS, 1, 2, 4) }
 
 func Benchmark_throughput_Flow_2VIF_4VC_8FlowTLS(b *testing.B) { benchmarkFlow(b, securityTLS, 2, 2, 2) }
-
-// A single empty test to avoid:
-// testing: warning: no tests to run
-// from showing up when running benchmarks in this package via "go test"
-func TestNoOp(t *testing.T) {}