veyron/runtimes/google/ipc: fix iobuf bug.

* Fixed to use only one iobuf.Reader per net.Conn.
* Changed iobuf.Pool to allocate buf in a multiple of minSize
  and set the default minSize to 4K.
* Fix iobuf leaks.
  - There are still two known Slice leaks, a reserved iobuf in crypter
    and vc.writer. At first, I tried to fix these leaks too, but it made
    close logics of VC/VIF/Proxy too complicated due to their
    dependencies. So I revert it :) They don't affect the peformance much
    and will be GCed eventually.

With these fixes, IPC bencmark (in my local machine) shows a huge
performance improvement (+35%).

Benchmark___10B: 4.44ms -> 2.59ms
Benchmark___1K_chunk___100B:   291.40ms -> 178.10ms
Benchmark___10B_mux___1K_chunks__100B: 203.60ms -> 102.70ms

Change-Id: I119b05c20ca307e5ce7c1d7f7c08c73a5df7d983
diff --git a/runtimes/google/ipc/benchmark/RESULTS.txt b/runtimes/google/ipc/benchmark/RESULTS.txt
index b884698..95a44bf 100644
--- a/runtimes/google/ipc/benchmark/RESULTS.txt
+++ b/runtimes/google/ipc/benchmark/RESULTS.txt
@@ -8,1525 +8,1599 @@
   continuously in the same process.
 
 ================================================================================
-Date: 01/06/2015
+Date: 02/02/2015
 Platform: Intel(R) Xeon(R) CPU E5-2689 0 @ 2.60GHz,  66114888KB Memory
 
-Benchmark____1B	    2000	   5135719 ns/op	   0.00 MB/s
+Benchmark____1B	    5000	   1941933 ns/op	   0.00 MB/s
 --- Histogram (unit: ms)
-	Count: 2000  Min: 4  Max: 6  Avg: 4.50
+	Count: 5000  Min: 1  Max: 4  Avg: 1.35
 	------------------------------------------------------------
-	[  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
+	[  1,   2)  3792   75.8%   75.8%  ########
+	[  2,   3)   734   14.7%   90.5%  #
+	[  3,   4)   397    7.9%   98.5%  #
+	[  4, inf)    77    1.5%  100.0%  
+Benchmark____1B-2	    5000	   1744191 ns/op	   0.00 MB/s
 --- Histogram (unit: ms)
-	Count: 2000  Min: 4  Max: 6  Avg: 4.32
+	Count: 5000  Min: 1  Max: 3  Avg: 1.17
 	------------------------------------------------------------
-	[  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
+	[  1,   2)  4518   90.4%   90.4%  #########
+	[  2,   3)    91    1.8%   92.2%  
+	[  3, inf)   391    7.8%  100.0%  #
+Benchmark___10B	    5000	   2015671 ns/op	   0.01 MB/s
 --- Histogram (unit: ms)
-	Count: 2000  Min: 4  Max: 7  Avg: 4.58
+	Count: 5000  Min: 1  Max: 9  Avg: 1.39
 	------------------------------------------------------------
-	[  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%  
+	[  1,   2)  4554   91.1%   91.1%  #########
+	[  2,   3)    17    0.3%   91.4%  
+	[  3,   4)   102    2.0%   93.5%  
+	[  4,   5)    21    0.4%   93.9%  
+	[  5,   6)    60    1.2%   95.1%  
+	[  6,   8)   180    3.6%   98.7%  
+	[  8,  10)    66    1.3%  100.0%  
+	[ 10,  12)     0    0.0%  100.0%  
 	[ 12, inf)     0    0.0%  100.0%  
-Benchmark__10KB-2	    2000	   5046850 ns/op	   3.96 MB/s
+Benchmark___10B-2	    5000	   1830436 ns/op	   0.01 MB/s
 --- Histogram (unit: ms)
-	Count: 2000  Min: 4  Max: 9  Avg: 4.42
+	Count: 5000  Min: 1  Max: 6  Avg: 1.20
 	------------------------------------------------------------
-	[  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
+	[  1,   2)  4731   94.6%   94.6%  #########
+	[  2,   3)    21    0.4%   95.0%  
+	[  3,   4)     0    0.0%   95.0%  
+	[  4,   5)    47    0.9%   96.0%  
+	[  5,   6)   161    3.2%   99.2%  
+	[  6, inf)    40    0.8%  100.0%  
+Benchmark__100B	    3000	   2140626 ns/op	   0.09 MB/s
 --- Histogram (unit: ms)
-	Count: 1000  Min: 6  Max: 13  Avg: 7.50
+	Count: 3000  Min: 1  Max: 15  Avg: 1.47
 	------------------------------------------------------------
-	[  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
+	[  1,   2)  2811   93.7%   93.7%  #########
+	[  2,   3)     6    0.2%   93.9%  
+	[  3,   4)     5    0.2%   94.1%  
+	[  4,   5)    17    0.6%   94.6%  
+	[  5,   7)    36    1.2%   95.8%  
+	[  7,   9)    19    0.6%   96.5%  
+	[  9,  11)    38    1.3%   97.7%  
+	[ 11,  14)    62    2.1%   99.8%  
+	[ 14,  18)     6    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,  41)     0    0.0%  100.0%  
+	[ 41,  50)     0    0.0%  100.0%  
+	[ 50, inf)     0    0.0%  100.0%  
+Benchmark__100B-2	    5000	   1852904 ns/op	   0.11 MB/s
 --- Histogram (unit: ms)
-	Count: 1000  Min: 5  Max: 9  Avg: 5.77
+	Count: 5000  Min: 1  Max: 11  Avg: 1.21
 	------------------------------------------------------------
-	[  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
+	[  1,   2)  4803   96.1%   96.1%  ##########
+	[  2,   3)    20    0.4%   96.5%  
+	[  3,   4)     0    0.0%   96.5%  
+	[  4,   5)     0    0.0%   96.5%  
+	[  5,   6)     0    0.0%   96.5%  
+	[  6,   8)   160    3.2%   99.7%  
+	[  8,  10)     9    0.2%   99.8%  
+	[ 10,  12)     8    0.2%  100.0%  
+	[ 12,  15)     0    0.0%  100.0%  
+	[ 15,  18)     0    0.0%  100.0%  
+	[ 18, inf)     0    0.0%  100.0%  
+Benchmark___1KB	    3000	   2231959 ns/op	   0.90 MB/s
 --- Histogram (unit: ms)
-	Count: 2000  Min: 4  Max: 7  Avg: 4.87
+	Count: 3000  Min: 1  Max: 19  Avg: 1.53
 	------------------------------------------------------------
-	[  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
+	[  1,   2)  2875   95.8%   95.8%  ##########
+	[  2,   3)     1    0.0%   95.9%  
+	[  3,   4)     0    0.0%   95.9%  
+	[  4,   5)     0    0.0%   95.9%  
+	[  5,   7)     8    0.3%   96.1%  
+	[  7,   9)    21    0.7%   96.8%  
+	[  9,  12)     0    0.0%   96.8%  
+	[ 12,  15)    29    1.0%   97.8%  
+	[ 15,  19)    56    1.9%   99.7%  
+	[ 19,  24)    10    0.3%  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___1KB-2	    3000	   2078680 ns/op	   0.96 MB/s
 --- Histogram (unit: ms)
-	Count: 2000  Min: 4  Max: 6  Avg: 4.46
+	Count: 3000  Min: 1  Max: 12  Avg: 1.35
 	------------------------------------------------------------
-	[  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
+	[  1,   2)  2699   90.0%   90.0%  #########
+	[  2,   3)   213    7.1%   97.1%  #
+	[  3,   4)     0    0.0%   97.1%  
+	[  4,   5)     0    0.0%   97.1%  
+	[  5,   6)     0    0.0%   97.1%  
+	[  6,   8)     0    0.0%   97.1%  
+	[  8,  10)    20    0.7%   97.7%  
+	[ 10,  13)    68    2.3%  100.0%  
+	[ 13,  16)     0    0.0%  100.0%  
+	[ 16,  20)     0    0.0%  100.0%  
+	[ 20,  24)     0    0.0%  100.0%  
+	[ 24, inf)     0    0.0%  100.0%  
+Benchmark__10KB	    3000	   2548055 ns/op	   7.85 MB/s
 --- Histogram (unit: ms)
-	Count: 2000  Min: 4  Max: 7  Avg: 4.89
+	Count: 3000  Min: 1  Max: 24  Avg: 1.73
 	------------------------------------------------------------
-	[  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
+	[  1,   2)  2665   88.8%   88.8%  #########
+	[  2,   3)   196    6.5%   95.4%  #
+	[  3,   4)     0    0.0%   95.4%  
+	[  4,   5)     0    0.0%   95.4%  
+	[  5,   7)     0    0.0%   95.4%  
+	[  7,   9)    42    1.4%   96.8%  
+	[  9,  12)     0    0.0%   96.8%  
+	[ 12,  16)    30    1.0%   97.8%  
+	[ 16,  21)    19    0.6%   98.4%  
+	[ 21,  27)    48    1.6%  100.0%  
+	[ 27,  35)     0    0.0%  100.0%  
+	[ 35,  44)     0    0.0%  100.0%  
+	[ 44,  56)     0    0.0%  100.0%  
+	[ 56,  71)     0    0.0%  100.0%  
+	[ 71,  89)     0    0.0%  100.0%  
+	[ 89, 111)     0    0.0%  100.0%  
+	[111, inf)     0    0.0%  100.0%  
+Benchmark__10KB-2	    3000	   2242089 ns/op	   8.92 MB/s
 --- Histogram (unit: ms)
-	Count: 2000  Min: 4  Max: 6  Avg: 4.55
+	Count: 3000  Min: 1  Max: 14  Avg: 1.53
 	------------------------------------------------------------
-	[  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%  
+	[  1,   2)  2328   77.6%   77.6%  ########
+	[  2,   3)   581   19.4%   97.0%  ##
+	[  3,   4)     0    0.0%   97.0%  
+	[  4,   5)     0    0.0%   97.0%  
+	[  5,   6)     0    0.0%   97.0%  
+	[  6,   8)     0    0.0%   97.0%  
+	[  8,  10)     0    0.0%   97.0%  
+	[ 10,  13)    45    1.5%   98.5%  
+	[ 13,  16)    46    1.5%  100.0%  
+	[ 16,  20)     0    0.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, inf)     0    0.0%  100.0%  
-Benchmark___10_chunk___10KB-2	    1000	   7345578 ns/op	  27.23 MB/s
+Benchmark_100KB	    2000	   5112233 ns/op	  39.12 MB/s
 --- Histogram (unit: ms)
-	Count: 1000  Min: 5  Max: 14  Avg: 6.95
+	Count: 2000  Min: 3  Max: 26  Avg: 4.49
 	------------------------------------------------------------
-	[  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
+	[  3,   4)  1819   91.0%   91.0%  #########
+	[  4,   5)     0    0.0%   91.0%  
+	[  5,   6)     0    0.0%   91.0%  
+	[  6,   7)     0    0.0%   91.0%  
+	[  7,   9)    44    2.2%   93.2%  
+	[  9,  11)     1    0.1%   93.2%  
+	[ 11,  14)     0    0.0%   93.2%  
+	[ 14,  18)     0    0.0%   93.2%  
+	[ 18,  23)    45    2.2%   95.5%  
+	[ 23,  29)    91    4.5%  100.0%  
+	[ 29,  37)     0    0.0%  100.0%  
+	[ 37,  46)     0    0.0%  100.0%  
+	[ 46,  58)     0    0.0%  100.0%  
+	[ 58,  73)     0    0.0%  100.0%  
+	[ 73,  91)     0    0.0%  100.0%  
+	[ 91, 113)     0    0.0%  100.0%  
+	[113, inf)     0    0.0%  100.0%  
+Benchmark_100KB-2	    2000	   3661880 ns/op	  54.62 MB/s
 --- Histogram (unit: ms)
-	Count: 200  Min: 24  Max: 37  Avg: 31.07
+	Count: 2000  Min: 2  Max: 19  Avg: 3.00
 	------------------------------------------------------------
-	[ 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
+	[  2,   3)  1657   82.9%   82.9%  ########
+	[  3,   4)   143    7.2%   90.0%  #
+	[  4,   5)    67    3.4%   93.4%  
+	[  5,   6)     1    0.1%   93.4%  
+	[  6,   8)     0    0.0%   93.4%  
+	[  8,  10)     0    0.0%   93.4%  
+	[ 10,  13)    13    0.7%   94.1%  
+	[ 13,  16)    48    2.4%   96.5%  
+	[ 16,  20)    71    3.6%  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,  72)     0    0.0%  100.0%  
+	[ 72,  89)     0    0.0%  100.0%  
+	[ 89, inf)     0    0.0%  100.0%  
+
+Benchmark____1_chunk_____1B	    3000	   2154678 ns/op	   0.00 MB/s
 --- Histogram (unit: ms)
-	Count: 500  Min: 14  Max: 27  Avg: 18.58
+	Count: 3000  Min: 1  Max: 4  Avg: 1.42
 	------------------------------------------------------------
-	[ 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
+	[  1,   2)  2069   69.0%   69.0%  #######
+	[  2,   3)   599   20.0%   88.9%  ##
+	[  3,   4)   331   11.0%  100.0%  #
+	[  4, inf)     1    0.0%  100.0%  
+Benchmark____1_chunk_____1B-2	    5000	   1907902 ns/op	   0.00 MB/s
 --- Histogram (unit: ms)
-	Count: 500  Min: 16  Max: 34  Avg: 19.44
+	Count: 5000  Min: 1  Max: 4  Avg: 1.21
 	------------------------------------------------------------
-	[ 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
+	[  1,   2)  4345   86.9%   86.9%  #########
+	[  2,   3)   275    5.5%   92.4%  #
+	[  3,   4)   377    7.5%   99.9%  #
+	[  4, inf)     3    0.1%  100.0%  
+Benchmark____1_chunk____10B	    3000	   2234222 ns/op	   0.01 MB/s
 --- Histogram (unit: ms)
-	Count: 500  Min: 11  Max: 23  Avg: 14.28
+	Count: 3000  Min: 1  Max: 7  Avg: 1.44
 	------------------------------------------------------------
-	[ 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
+	[  1,   2)  2603   86.8%   86.8%  #########
+	[  2,   3)    65    2.2%   88.9%  
+	[  3,   4)    77    2.6%   91.5%  
+	[  4,   5)    50    1.7%   93.2%  
+	[  5,   6)    87    2.9%   96.1%  
+	[  6,   7)   117    3.9%  100.0%  
+	[  7, inf)     1    0.0%  100.0%  
+Benchmark____1_chunk____10B-2	    5000	   1920770 ns/op	   0.01 MB/s
 --- Histogram (unit: ms)
-	Count: 300  Min: 20  Max: 35  Avg: 24.38
+	Count: 5000  Min: 1  Max: 5  Avg: 1.21
 	------------------------------------------------------------
-	[ 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
+	[  1,   2)  4571   91.4%   91.4%  #########
+	[  2,   3)   106    2.1%   93.5%  
+	[  3,   4)    23    0.5%   94.0%  
+	[  4,   5)   284    5.7%   99.7%  #
+	[  5, inf)    16    0.3%  100.0%  
+Benchmark____1_chunk___100B	    3000	   2296619 ns/op	   0.09 MB/s
 --- Histogram (unit: ms)
-	Count: 500  Min: 11  Max: 25  Avg: 14.57
+	Count: 3000  Min: 1  Max: 12  Avg: 1.49
 	------------------------------------------------------------
-	[ 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
+	[  1,   2)  2680   89.3%   89.3%  #########
+	[  2,   3)    98    3.3%   92.6%  
+	[  3,   4)    10    0.3%   92.9%  
+	[  4,   5)    53    1.8%   94.7%  
+	[  5,   6)     2    0.1%   94.8%  
+	[  6,   8)    57    1.9%   96.7%  
+	[  8,  10)    55    1.8%   98.5%  
+	[ 10,  13)    45    1.5%  100.0%  
+	[ 13,  16)     0    0.0%  100.0%  
+	[ 16,  20)     0    0.0%  100.0%  
+	[ 20,  24)     0    0.0%  100.0%  
+	[ 24, inf)     0    0.0%  100.0%  
+Benchmark____1_chunk___100B-2	    5000	   1971568 ns/op	   0.10 MB/s
 --- Histogram (unit: ms)
-	Count: 300  Min: 23  Max: 38  Avg: 26.94
+	Count: 5000  Min: 1  Max: 7  Avg: 1.26
 	------------------------------------------------------------
-	[ 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
+	[  1,   2)  4521   90.4%   90.4%  #########
+	[  2,   3)   257    5.1%   95.6%  #
+	[  3,   4)     0    0.0%   95.6%  
+	[  4,   5)     0    0.0%   95.6%  
+	[  5,   6)    66    1.3%   96.9%  
+	[  6,   7)   155    3.1%  100.0%  
+	[  7, inf)     1    0.0%  100.0%  
+Benchmark____1_chunk____1KB	    3000	   2399265 ns/op	   0.83 MB/s
 --- Histogram (unit: ms)
-	Count: 500  Min: 12  Max: 24  Avg: 15.40
+	Count: 3000  Min: 1  Max: 17  Avg: 1.56
 	------------------------------------------------------------
-	[ 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
+	[  1,   2)  2695   89.8%   89.8%  #########
+	[  2,   3)   146    4.9%   94.7%  
+	[  3,   4)     3    0.1%   94.8%  
+	[  4,   5)     1    0.0%   94.8%  
+	[  5,   7)    42    1.4%   96.2%  
+	[  7,   9)     0    0.0%   96.2%  
+	[  9,  12)    43    1.4%   97.7%  
+	[ 12,  15)    42    1.4%   99.1%  
+	[ 15,  19)    28    0.9%  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____1_chunk____1KB-2	    5000	   2143186 ns/op	   0.93 MB/s
 --- Histogram (unit: ms)
-	Count: 200  Min: 25  Max: 41  Avg: 29.77
+	Count: 5000  Min: 1  Max: 12  Avg: 1.47
 	------------------------------------------------------------
-	[ 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
+	[  1,   2)  3732   74.6%   74.6%  #######
+	[  2,   3)  1100   22.0%   96.6%  ##
+	[  3,   4)     0    0.0%   96.6%  
+	[  4,   5)     0    0.0%   96.6%  
+	[  5,   6)     0    0.0%   96.6%  
+	[  6,   8)    52    1.0%   97.7%  
+	[  8,  10)    62    1.2%   98.9%  
+	[ 10,  13)    54    1.1%  100.0%  
+	[ 13,  16)     0    0.0%  100.0%  
+	[ 16,  20)     0    0.0%  100.0%  
+	[ 20,  24)     0    0.0%  100.0%  
+	[ 24, inf)     0    0.0%  100.0%  
+Benchmark____1_chunk___10KB	    3000	   2829279 ns/op	   7.07 MB/s
 --- Histogram (unit: ms)
-	Count: 500  Min: 14  Max: 26  Avg: 17.41
+	Count: 3000  Min: 1  Max: 26  Avg: 2.72
 	------------------------------------------------------------
-	[ 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
+	[  1,   2)     2    0.1%    0.1%  
+	[  2,   3)  2859   95.3%   95.4%  ##########
+	[  3,   4)     0    0.0%   95.4%  
+	[  4,   5)     0    0.0%   95.4%  
+	[  5,   7)     0    0.0%   95.4%  
+	[  7,   9)    27    0.9%   96.3%  
+	[  9,  12)     5    0.2%   96.4%  
+	[ 12,  16)     5    0.2%   96.6%  
+	[ 16,  21)    37    1.2%   97.8%  
+	[ 21,  27)    65    2.2%  100.0%  
+	[ 27,  35)     0    0.0%  100.0%  
+	[ 35,  45)     0    0.0%  100.0%  
+	[ 45,  58)     0    0.0%  100.0%  
+	[ 58,  74)     0    0.0%  100.0%  
+	[ 74,  94)     0    0.0%  100.0%  
+	[ 94, 118)     0    0.0%  100.0%  
+	[118, inf)     0    0.0%  100.0%  
+Benchmark____1_chunk___10KB-2	    3000	   2402468 ns/op	   8.32 MB/s
 --- Histogram (unit: ms)
-	Count: 100  Min: 42  Max: 57  Avg: 51.22
+	Count: 3000  Min: 1  Max: 13  Avg: 2.00
 	------------------------------------------------------------
-	[ 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
+	[  1,   2)   879   29.3%   29.3%  ###
+	[  2,   3)  2021   67.4%   96.7%  #######
+	[  3,   4)     0    0.0%   96.7%  
+	[  4,   5)     0    0.0%   96.7%  
+	[  5,   6)     0    0.0%   96.7%  
+	[  6,   8)     0    0.0%   96.7%  
+	[  8,  10)    24    0.8%   97.5%  
+	[ 10,  13)    49    1.6%   99.1%  
+	[ 13,  16)    27    0.9%  100.0%  
+	[ 16,  20)     0    0.0%  100.0%  
+	[ 20,  25)     0    0.0%  100.0%  
+	[ 25,  31)     0    0.0%  100.0%  
+	[ 31, inf)     0    0.0%  100.0%  
+Benchmark____1_chunk__100KB	    2000	   5417885 ns/op	  36.91 MB/s
 --- Histogram (unit: ms)
-	Count: 300  Min: 22  Max: 34  Avg: 28.47
+	Count: 2000  Min: 3  Max: 29  Avg: 4.65
 	------------------------------------------------------------
-	[ 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
+	[  3,   4)  1730   86.5%   86.5%  #########
+	[  4,   5)    54    2.7%   89.2%  
+	[  5,   6)     0    0.0%   89.2%  
+	[  6,   7)     0    0.0%   89.2%  
+	[  7,   9)    27    1.4%   90.6%  
+	[  9,  11)    45    2.2%   92.8%  
+	[ 11,  14)     0    0.0%   92.8%  
+	[ 14,  18)     0    0.0%   92.8%  
+	[ 18,  23)    69    3.5%   96.2%  
+	[ 23,  30)    75    3.8%  100.0%  
+	[ 30,  38)     0    0.0%  100.0%  
+	[ 38,  48)     0    0.0%  100.0%  
+	[ 48,  61)     0    0.0%  100.0%  
+	[ 61,  77)     0    0.0%  100.0%  
+	[ 77,  97)     0    0.0%  100.0%  
+	[ 97, 122)     0    0.0%  100.0%  
+	[122, inf)     0    0.0%  100.0%  
+Benchmark____1_chunk__100KB-2	    2000	   3784105 ns/op	  52.85 MB/s
 --- Histogram (unit: ms)
-	Count: 30  Min: 243  Max: 257  Avg: 251.23
+	Count: 2000  Min: 2  Max: 20  Avg: 3.10
 	------------------------------------------------------------
-	[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
+	[  2,   3)  1356   67.8%   67.8%  #######
+	[  3,   4)   448   22.4%   90.2%  ##
+	[  4,   5)    57    2.9%   93.1%  
+	[  5,   6)     0    0.0%   93.1%  
+	[  6,   8)     0    0.0%   93.1%  
+	[  8,  10)     0    0.0%   93.1%  
+	[ 10,  13)    55    2.8%   95.8%  
+	[ 13,  16)    59    3.0%   98.8%  
+	[ 16,  20)    24    1.2%  100.0%  
+	[ 20,  25)     1    0.1%  100.0%  
+	[ 25,  31)     0    0.0%  100.0%  
+	[ 31,  39)     0    0.0%  100.0%  
+	[ 39,  49)     0    0.0%  100.0%  
+	[ 49,  61)     0    0.0%  100.0%  
+	[ 61,  75)     0    0.0%  100.0%  
+	[ 75,  92)     0    0.0%  100.0%  
+	[ 92, inf)     0    0.0%  100.0%  
+Benchmark___10_chunk_____1B	    2000	   3738398 ns/op	   0.01 MB/s
 --- Histogram (unit: ms)
-	Count: 50  Min: 127  Max: 137  Avg: 131.44
+	Count: 2000  Min: 2  Max: 30  Avg: 3.18
 	------------------------------------------------------------
-	[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
+	[  2,   3)  1091   54.6%   54.6%  #####
+	[  3,   4)   828   41.4%   96.0%  ####
+	[  4,   5)     0    0.0%   96.0%  
+	[  5,   6)     0    0.0%   96.0%  
+	[  6,   8)     1    0.1%   96.0%  
+	[  8,  11)     0    0.0%   96.0%  
+	[ 11,  14)    19    1.0%   97.0%  
+	[ 14,  18)     0    0.0%   97.0%  
+	[ 18,  23)    19    1.0%   97.9%  
+	[ 23,  30)    41    2.1%  100.0%  
+	[ 30,  39)     1    0.1%  100.0%  
+	[ 39,  50)     0    0.0%  100.0%  
+	[ 50,  64)     0    0.0%  100.0%  
+	[ 64,  81)     0    0.0%  100.0%  
+	[ 81, 103)     0    0.0%  100.0%  
+	[103, 130)     0    0.0%  100.0%  
+	[130, inf)     0    0.0%  100.0%  
+Benchmark___10_chunk_____1B-2	    3000	   2838899 ns/op	   0.01 MB/s
 --- Histogram (unit: ms)
-	Count: 50  Min: 123  Max: 195  Avg: 147.42
+	Count: 3000  Min: 2  Max: 17  Avg: 2.42
+	------------------------------------------------------------
+	[  2,   3)  2705   90.2%   90.2%  #########
+	[  3,   4)   206    6.9%   97.0%  #
+	[  4,   5)     1    0.0%   97.1%  
+	[  5,   6)     0    0.0%   97.1%  
+	[  6,   8)     0    0.0%   97.1%  
+	[  8,  10)     0    0.0%   97.1%  
+	[ 10,  12)     4    0.1%   97.2%  
+	[ 12,  15)    43    1.4%   98.6%  
+	[ 15,  19)    41    1.4%  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, inf)     0    0.0%  100.0%  
+Benchmark___10_chunk____10B	    2000	   3750396 ns/op	   0.05 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 2  Max: 31  Avg: 3.15
+	------------------------------------------------------------
+	[  2,   3)  1179   59.0%   59.0%  ######
+	[  3,   4)   747   37.4%   96.3%  ####
+	[  4,   5)     0    0.0%   96.3%  
+	[  5,   6)     0    0.0%   96.3%  
+	[  6,   8)     0    0.0%   96.3%  
+	[  8,  11)     0    0.0%   96.3%  
+	[ 11,  14)    18    0.9%   97.2%  
+	[ 14,  18)     0    0.0%   97.2%  
+	[ 18,  24)    19    1.0%   98.2%  
+	[ 24,  31)    32    1.6%   99.8%  
+	[ 31,  40)     5    0.2%  100.0%  
+	[ 40,  51)     0    0.0%  100.0%  
+	[ 51,  65)     0    0.0%  100.0%  
+	[ 65,  83)     0    0.0%  100.0%  
+	[ 83, 106)     0    0.0%  100.0%  
+	[106, 134)     0    0.0%  100.0%  
+	[134, inf)     0    0.0%  100.0%  
+Benchmark___10_chunk____10B-2	    3000	   2669872 ns/op	   0.07 MB/s
+--- Histogram (unit: ms)
+	Count: 3000  Min: 2  Max: 14  Avg: 2.37
+	------------------------------------------------------------
+	[  2,   3)  2712   90.4%   90.4%  #########
+	[  3,   4)   208    6.9%   97.3%  #
+	[  4,   5)     0    0.0%   97.3%  
+	[  5,   6)     0    0.0%   97.3%  
+	[  6,   7)     0    0.0%   97.3%  
+	[  7,   9)     0    0.0%   97.3%  
+	[  9,  11)     0    0.0%   97.3%  
+	[ 11,  14)    52    1.7%   99.1%  
+	[ 14,  17)    28    0.9%  100.0%  
+	[ 17,  21)     0    0.0%  100.0%  
+	[ 21,  26)     0    0.0%  100.0%  
+	[ 26,  32)     0    0.0%  100.0%  
+	[ 32, inf)     0    0.0%  100.0%  
+Benchmark___10_chunk___100B	    2000	   3830903 ns/op	   0.52 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 2  Max: 43  Avg: 3.34
+	------------------------------------------------------------
+	[  2,   3)   880   44.0%   44.0%  ####
+	[  3,   4)  1052   52.6%   96.6%  #####
+	[  4,   5)     3    0.2%   96.8%  
+	[  5,   7)     0    0.0%   96.8%  
+	[  7,   9)     0    0.0%   96.8%  
+	[  9,  12)     0    0.0%   96.8%  
+	[ 12,  16)    17    0.9%   97.6%  
+	[ 16,  21)     0    0.0%   97.6%  
+	[ 21,  28)    17    0.9%   98.5%  
+	[ 28,  37)    27    1.4%   99.8%  
+	[ 37,  48)     4    0.2%  100.0%  
+	[ 48,  63)     0    0.0%  100.0%  
+	[ 63,  82)     0    0.0%  100.0%  
+	[ 82, 106)     0    0.0%  100.0%  
+	[106, 138)     0    0.0%  100.0%  
+	[138, 178)     0    0.0%  100.0%  
+	[178, inf)     0    0.0%  100.0%  
+Benchmark___10_chunk___100B-2	    3000	   2793961 ns/op	   0.72 MB/s
+--- Histogram (unit: ms)
+	Count: 3000  Min: 2  Max: 21  Avg: 2.41
+	------------------------------------------------------------
+	[  2,   3)  2717   90.6%   90.6%  #########
+	[  3,   4)   211    7.0%   97.6%  #
+	[  4,   5)     0    0.0%   97.6%  
+	[  5,   6)     0    0.0%   97.6%  
+	[  6,   8)     0    0.0%   97.6%  
+	[  8,  10)     0    0.0%   97.6%  
+	[ 10,  13)     0    0.0%   97.6%  
+	[ 13,  16)    48    1.6%   99.2%  
+	[ 16,  20)    11    0.4%   99.6%  
+	[ 20,  25)    13    0.4%  100.0%  
+	[ 25,  32)     0    0.0%  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,  95)     0    0.0%  100.0%  
+	[ 95, inf)     0    0.0%  100.0%  
+Benchmark___10_chunk____1KB	    2000	   4349817 ns/op	   4.60 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 3  Max: 48  Avg: 4.07
+	------------------------------------------------------------
+	[  3,   4)  1907   95.4%   95.4%  ##########
+	[  4,   5)    11    0.6%   95.9%  
+	[  5,   6)    12    0.6%   96.5%  
+	[  6,   8)     0    0.0%   96.5%  
+	[  8,  10)     0    0.0%   96.5%  
+	[ 10,  13)     0    0.0%   96.5%  
+	[ 13,  17)     0    0.0%   96.5%  
+	[ 17,  22)    21    1.1%   97.6%  
+	[ 22,  29)     0    0.0%   97.6%  
+	[ 29,  38)    21    1.1%   98.6%  
+	[ 38,  50)    28    1.4%  100.0%  
+	[ 50,  66)     0    0.0%  100.0%  
+	[ 66,  87)     0    0.0%  100.0%  
+	[ 87, 114)     0    0.0%  100.0%  
+	[114, 148)     0    0.0%  100.0%  
+	[148, 192)     0    0.0%  100.0%  
+	[192, inf)     0    0.0%  100.0%  
+Benchmark___10_chunk____1KB-2	    2000	   3167146 ns/op	   6.31 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 2  Max: 22  Avg: 2.53
+	------------------------------------------------------------
+	[  2,   3)  1734   86.7%   86.7%  #########
+	[  3,   4)   210   10.5%   97.2%  #
+	[  4,   5)     7    0.4%   97.6%  
+	[  5,   6)     0    0.0%   97.6%  
+	[  6,   8)     0    0.0%   97.6%  
+	[  8,  10)     0    0.0%   97.6%  
+	[ 10,  13)     0    0.0%   97.6%  
+	[ 13,  17)    13    0.7%   98.2%  
+	[ 17,  21)    17    0.9%   99.1%  
+	[ 21,  27)    19    1.0%  100.0%  
+	[ 27,  34)     0    0.0%  100.0%  
+	[ 34,  42)     0    0.0%  100.0%  
+	[ 42,  52)     0    0.0%  100.0%  
+	[ 52,  65)     0    0.0%  100.0%  
+	[ 65,  81)     0    0.0%  100.0%  
+	[ 81, 100)     0    0.0%  100.0%  
+	[100, inf)     0    0.0%  100.0%  
+Benchmark___10_chunk___10KB	    1000	   6486765 ns/op	  30.83 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 4  Max: 50  Avg: 5.74
+	------------------------------------------------------------
+	[  4,   5)   821   82.1%   82.1%  ########
+	[  5,   6)   128   12.8%   94.9%  #
+	[  6,   7)     3    0.3%   95.2%  
+	[  7,   9)     1    0.1%   95.3%  
+	[  9,  11)     0    0.0%   95.3%  
+	[ 11,  14)     0    0.0%   95.3%  
+	[ 14,  18)     8    0.8%   96.1%  
+	[ 18,  23)     0    0.0%   96.1%  
+	[ 23,  30)     3    0.3%   96.4%  
+	[ 30,  39)     5    0.5%   96.9%  
+	[ 39,  51)    31    3.1%  100.0%  
+	[ 51,  67)     0    0.0%  100.0%  
+	[ 67,  88)     0    0.0%  100.0%  
+	[ 88, 115)     0    0.0%  100.0%  
+	[115, 150)     0    0.0%  100.0%  
+	[150, 195)     0    0.0%  100.0%  
+	[195, inf)     0    0.0%  100.0%  
+Benchmark___10_chunk___10KB-2	    2000	   4310677 ns/op	  46.40 MB/s
+--- Histogram (unit: ms)
+	Count: 2000  Min: 2  Max: 24  Avg: 3.84
+	------------------------------------------------------------
+	[  2,   3)     3    0.2%    0.2%  
+	[  3,   4)  1762   88.1%   88.2%  #########
+	[  4,   5)    33    1.7%   89.9%  
+	[  5,   6)   124    6.2%   96.1%  #
+	[  6,   8)     0    0.0%   96.1%  
+	[  8,  10)     0    0.0%   96.1%  
+	[ 10,  13)     0    0.0%   96.1%  
+	[ 13,  17)     0    0.0%   96.1%  
+	[ 17,  22)    33    1.7%   97.8%  
+	[ 22,  28)    45    2.2%  100.0%  
+	[ 28,  35)     0    0.0%  100.0%  
+	[ 35,  44)     0    0.0%  100.0%  
+	[ 44,  55)     0    0.0%  100.0%  
+	[ 55,  69)     0    0.0%  100.0%  
+	[ 69,  86)     0    0.0%  100.0%  
+	[ 86, 107)     0    0.0%  100.0%  
+	[107, inf)     0    0.0%  100.0%  
+Benchmark___10_chunk__100KB	     300	  29183306 ns/op	  68.53 MB/s
+--- Histogram (unit: ms)
+	Count: 300  Min: 21  Max: 71  Avg: 28.66
+	------------------------------------------------------------
+	[ 21,  22)  186   62.0%   62.0%  ######
+	[ 22,  23)   31   10.3%   72.3%  #
+	[ 23,  24)    5    1.7%   74.0%  
+	[ 24,  26)    1    0.3%   74.3%  
+	[ 26,  28)    0    0.0%   74.3%  
+	[ 28,  31)   23    7.7%   82.0%  #
+	[ 31,  35)    1    0.3%   82.3%  
+	[ 35,  41)    0    0.0%   82.3%  
+	[ 41,  49)    0    0.0%   82.3%  
+	[ 49,  59)   25    8.3%   90.7%  #
+	[ 59,  72)   28    9.3%  100.0%  #
+	[ 72,  89)    0    0.0%  100.0%  
+	[ 89, 111)    0    0.0%  100.0%  
+	[111, 140)    0    0.0%  100.0%  
+	[140, 178)    0    0.0%  100.0%  
+	[178, 228)    0    0.0%  100.0%  
+	[228, inf)    0    0.0%  100.0%  
+Benchmark___10_chunk__100KB-2	     500	  16030525 ns/op	 124.76 MB/s
+--- Histogram (unit: ms)
+	Count: 500  Min: 11  Max: 38  Avg: 15.56
+	------------------------------------------------------------
+	[ 11,  12)   88   17.6%   17.6%  ##
+	[ 12,  13)  295   59.0%   76.6%  ######
+	[ 13,  14)   14    2.8%   79.4%  
+	[ 14,  15)    1    0.2%   79.6%  
+	[ 15,  17)    6    1.2%   80.8%  
+	[ 17,  20)    9    1.8%   82.6%  
+	[ 20,  23)    0    0.0%   82.6%  
+	[ 23,  27)    0    0.0%   82.6%  
+	[ 27,  32)   37    7.4%   90.0%  #
+	[ 32,  39)   50   10.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, 110)    0    0.0%  100.0%  
+	[110, 137)    0    0.0%  100.0%  
+	[137, inf)    0    0.0%  100.0%  
+
+Benchmark__100_chunk_____1B	     500	  14799281 ns/op	   0.01 MB/s
+--- Histogram (unit: ms)
+	Count: 500  Min: 14  Max: 16  Avg: 14.23
+	------------------------------------------------------------
+	[ 14,  15)  386   77.2%   77.2%  ########
+	[ 15,  16)  113   22.6%   99.8%  ##
+	[ 16, inf)    1    0.2%  100.0%  
+Benchmark__100_chunk_____1B-2	    1000	  10135511 ns/op	   0.02 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 8  Max: 11  Avg: 9.63
+	------------------------------------------------------------
+	[  8,   9)    11    1.1%    1.1%  
+	[  9,  10)   432   43.2%   44.3%  ####
+	[ 10,  11)   477   47.7%   92.0%  #####
+	[ 11, inf)    80    8.0%  100.0%  #
+Benchmark__100_chunk____10B	     500	  15137229 ns/op	   0.13 MB/s
+--- Histogram (unit: ms)
+	Count: 500  Min: 14  Max: 18  Avg: 14.73
+	------------------------------------------------------------
+	[ 14,  15)  148   29.6%   29.6%  ###
+	[ 15,  16)  339   67.8%   97.4%  #######
+	[ 16,  17)   12    2.4%   99.8%  
+	[ 17,  18)    0    0.0%   99.8%  
+	[ 18, inf)    1    0.2%  100.0%  
+Benchmark__100_chunk____10B-2	    1000	  10731944 ns/op	   0.19 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 8  Max: 12  Avg: 10.26
+	------------------------------------------------------------
+	[  8,   9)    12    1.2%    1.2%  
+	[  9,  10)   159   15.9%   17.1%  ##
+	[ 10,  11)   421   42.1%   59.2%  ####
+	[ 11,  12)   375   37.5%   96.7%  ####
+	[ 12, inf)    33    3.3%  100.0%  
+Benchmark__100_chunk___100B	     500	  15355974 ns/op	   1.30 MB/s
+--- Histogram (unit: ms)
+	Count: 500  Min: 14  Max: 17  Avg: 14.83
+	------------------------------------------------------------
+	[ 14,  15)  128   25.6%   25.6%  ###
+	[ 15,  16)  330   66.0%   91.6%  #######
+	[ 16,  17)   41    8.2%   99.8%  #
+	[ 17, inf)    1    0.2%  100.0%  
+Benchmark__100_chunk___100B-2	    1000	  10757797 ns/op	   1.86 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 8  Max: 13  Avg: 10.25
+	------------------------------------------------------------
+	[  8,   9)    32    3.2%    3.2%  
+	[  9,  10)   217   21.7%   24.9%  ##
+	[ 10,  11)   363   36.3%   61.2%  ####
+	[ 11,  12)   253   25.3%   86.5%  ###
+	[ 12,  13)   127   12.7%   99.2%  #
+	[ 13, inf)     8    0.8%  100.0%  
+Benchmark__100_chunk____1KB	     500	  17505005 ns/op	  11.43 MB/s
+--- Histogram (unit: ms)
+	Count: 500  Min: 15  Max: 19  Avg: 17.03
+	------------------------------------------------------------
+	[ 15,  16)   51   10.2%   10.2%  #
+	[ 16,  17)  112   22.4%   32.6%  ##
+	[ 17,  18)  115   23.0%   55.6%  ##
+	[ 18,  19)  216   43.2%   98.8%  ####
+	[ 19, inf)    6    1.2%  100.0%  
+Benchmark__100_chunk____1KB-2	    1000	  11660590 ns/op	  17.15 MB/s
+--- Histogram (unit: ms)
+	Count: 1000  Min: 8  Max: 14  Avg: 11.15
+	------------------------------------------------------------
+	[  8,   9)    11    1.1%    1.1%  
+	[  9,  10)   158   15.8%   16.9%  ##
+	[ 10,  11)   183   18.3%   35.2%  ##
+	[ 11,  12)   270   27.0%   62.2%  ###
+	[ 12,  13)   123   12.3%   74.5%  #
+	[ 13,  14)   206   20.6%   95.1%  ##
+	[ 14, inf)    49    4.9%  100.0%  
+Benchmark__100_chunk___10KB	     200	  37914384 ns/op	  52.75 MB/s
+--- Histogram (unit: ms)
+	Count: 200  Min: 35  Max: 42  Avg: 37.35
+	------------------------------------------------------------
+	[ 35,  36)    9    4.5%    4.5%  
+	[ 36,  37)    4    2.0%    6.5%  
+	[ 37,  38)  120   60.0%   66.5%  ######
+	[ 38,  39)   52   26.0%   92.5%  ###
+	[ 39,  40)    8    4.0%   96.5%  
+	[ 40,  41)    5    2.5%   99.0%  
+	[ 41,  43)    2    1.0%  100.0%  
+	[ 43, inf)    0    0.0%  100.0%  
+Benchmark__100_chunk___10KB-2	     300	  20888999 ns/op	  95.74 MB/s
+--- Histogram (unit: ms)
+	Count: 300  Min: 18  Max: 23  Avg: 20.38
+	------------------------------------------------------------
+	[ 18,  19)   15    5.0%    5.0%  #
+	[ 19,  20)   11    3.7%    8.7%  
+	[ 20,  21)  135   45.0%   53.7%  #####
+	[ 21,  22)  125   41.7%   95.3%  ####
+	[ 22,  23)   13    4.3%   99.7%  
+	[ 23, inf)    1    0.3%  100.0%  
+Benchmark__100_chunk__100KB	      30	 215706680 ns/op	  92.72 MB/s
+--- Histogram (unit: ms)
+	Count: 30  Min: 210  Max: 220  Avg: 215.20
+	------------------------------------------------------------
+	[210, 211)   1    3.3%    3.3%  
+	[211, 212)   2    6.7%   10.0%  #
+	[212, 213)   0    0.0%   10.0%  
+	[213, 214)   9   30.0%   40.0%  ###
+	[214, 215)   4   13.3%   53.3%  #
+	[215, 217)   4   13.3%   66.7%  #
+	[217, 219)   1    3.3%   70.0%  
+	[219, 221)   9   30.0%  100.0%  ###
+	[221, 224)   0    0.0%  100.0%  
+	[224, 227)   0    0.0%  100.0%  
+	[227, inf)   0    0.0%  100.0%  
+Benchmark__100_chunk__100KB-2	     100	 113221561 ns/op	 176.64 MB/s
+--- Histogram (unit: ms)
+	Count: 100  Min: 108  Max: 120  Avg: 112.75
+	------------------------------------------------------------
+	[108, 109)    2    2.0%    2.0%  
+	[109, 110)    7    7.0%    9.0%  #
+	[110, 111)    3    3.0%   12.0%  
+	[111, 112)   16   16.0%   28.0%  ##
+	[112, 113)   20   20.0%   48.0%  ##
+	[113, 115)   29   29.0%   77.0%  ###
+	[115, 117)   20   20.0%   97.0%  ##
+	[117, 120)    2    2.0%   99.0%  
+	[120, 123)    1    1.0%  100.0%  
+	[123, 127)    0    0.0%  100.0%  
+	[127, 132)    0    0.0%  100.0%  
+	[132, 138)    0    0.0%  100.0%  
+	[138, inf)    0    0.0%  100.0%  
+Benchmark___1K_chunk_____1B	      50	 127031961 ns/op	   0.02 MB/s
+--- Histogram (unit: ms)
+	Count: 50  Min: 123  Max: 131  Avg: 126.56
 	------------------------------------------------------------
 	[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
+	[124, 125)   1    2.0%    4.0%  
+	[125, 126)  11   22.0%   26.0%  ##
+	[126, 127)  19   38.0%   64.0%  ####
+	[127, 128)   6   12.0%   76.0%  #
+	[128, 130)   8   16.0%   92.0%  ##
+	[130, 132)   4    8.0%  100.0%  #
+	[132, 134)   0    0.0%  100.0%  
+	[134, inf)   0    0.0%  100.0%  
+Benchmark___1K_chunk_____1B-2	     100	  82251965 ns/op	   0.02 MB/s
 --- Histogram (unit: ms)
-	Count: 100  Min: 109  Max: 128  Avg: 112.17
+	Count: 100  Min: 75  Max: 93  Avg: 81.77
 	------------------------------------------------------------
-	[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
+	[ 75,  76)    3    3.0%    3.0%  
+	[ 76,  77)   10   10.0%   13.0%  #
+	[ 77,  78)    6    6.0%   19.0%  #
+	[ 78,  79)    5    5.0%   24.0%  #
+	[ 79,  81)   17   17.0%   41.0%  ##
+	[ 81,  83)   17   17.0%   58.0%  ##
+	[ 83,  86)   27   27.0%   85.0%  ###
+	[ 86,  89)    6    6.0%   91.0%  #
+	[ 89,  93)    8    8.0%   99.0%  #
+	[ 93,  98)    1    1.0%  100.0%  
+	[ 98, 104)    0    0.0%  100.0%  
+	[104, 112)    0    0.0%  100.0%  
+	[112, 122)    0    0.0%  100.0%  
+	[122, 134)    0    0.0%  100.0%  
+	[134, 148)    0    0.0%  100.0%  
+	[148, 165)    0    0.0%  100.0%  
+	[165, inf)    0    0.0%  100.0%  
+Benchmark___1K_chunk____10B	      50	 126841430 ns/op	   0.16 MB/s
 --- Histogram (unit: ms)
-	Count: 30  Min: 205  Max: 216  Avg: 210.23
+	Count: 50  Min: 121  Max: 130  Avg: 126.34
 	------------------------------------------------------------
-	[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
+	[121, 122)   1    2.0%    2.0%  
+	[122, 123)   0    0.0%    2.0%  
+	[123, 124)   1    2.0%    4.0%  
+	[124, 125)   0    0.0%    4.0%  
+	[125, 126)   7   14.0%   18.0%  #
+	[126, 128)  31   62.0%   80.0%  ######
+	[128, 130)   9   18.0%   98.0%  ##
+	[130, 132)   1    2.0%  100.0%  
+	[132, 135)   0    0.0%  100.0%  
+	[135, inf)   0    0.0%  100.0%  
+Benchmark___1K_chunk____10B-2	     100	  80662645 ns/op	   0.25 MB/s
 --- Histogram (unit: ms)
-	Count: 100  Min: 113  Max: 132  Avg: 121.15
+	Count: 100  Min: 73  Max: 93  Avg: 80.11
 	------------------------------------------------------------
-	[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
+	[ 73,  74)    2    2.0%    2.0%  
+	[ 74,  75)    3    3.0%    5.0%  
+	[ 75,  76)   10   10.0%   15.0%  #
+	[ 76,  77)   12   12.0%   27.0%  #
+	[ 77,  79)   19   19.0%   46.0%  ##
+	[ 79,  81)   13   13.0%   59.0%  #
+	[ 81,  84)   20   20.0%   79.0%  ##
+	[ 84,  88)   12   12.0%   91.0%  #
+	[ 88,  92)    6    6.0%   97.0%  #
+	[ 92,  98)    3    3.0%  100.0%  
+	[ 98, 105)    0    0.0%  100.0%  
+	[105, 113)    0    0.0%  100.0%  
+	[113, 123)    0    0.0%  100.0%  
+	[123, 136)    0    0.0%  100.0%  
+	[136, 152)    0    0.0%  100.0%  
+	[152, 171)    0    0.0%  100.0%  
+	[171, inf)    0    0.0%  100.0%  
+Benchmark___1K_chunk___100B	      50	 130500666 ns/op	   1.53 MB/s
 --- Histogram (unit: ms)
-	Count: 30  Min: 230  Max: 250  Avg: 238.03
+	Count: 50  Min: 125  Max: 141  Avg: 129.98
 	------------------------------------------------------------
-	[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
+	[125, 126)   1    2.0%    2.0%  
+	[126, 127)   1    2.0%    4.0%  
+	[127, 128)   1    2.0%    6.0%  
+	[128, 129)   6   12.0%   18.0%  #
+	[129, 131)  27   54.0%   72.0%  #####
+	[131, 133)   8   16.0%   88.0%  ##
+	[133, 136)   4    8.0%   96.0%  #
+	[136, 139)   1    2.0%   98.0%  
+	[139, 143)   1    2.0%  100.0%  
+	[143, 148)   0    0.0%  100.0%  
+	[148, 154)   0    0.0%  100.0%  
+	[154, 161)   0    0.0%  100.0%  
+	[161, 170)   0    0.0%  100.0%  
+	[170, 181)   0    0.0%  100.0%  
+	[181, 194)   0    0.0%  100.0%  
+	[194, 210)   0    0.0%  100.0%  
+	[210, inf)   0    0.0%  100.0%  
+Benchmark___1K_chunk___100B-2	     100	  82993437 ns/op	   2.41 MB/s
 --- Histogram (unit: ms)
-	Count: 50  Min: 126  Max: 149  Avg: 137.94
+	Count: 100  Min: 72  Max: 93  Avg: 82.49
 	------------------------------------------------------------
-	[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
+	[ 72,  73)    1    1.0%    1.0%  
+	[ 73,  74)    0    0.0%    1.0%  
+	[ 74,  75)    0    0.0%    1.0%  
+	[ 75,  76)    1    1.0%    2.0%  
+	[ 76,  78)   10   10.0%   12.0%  #
+	[ 78,  80)   14   14.0%   26.0%  #
+	[ 80,  83)   15   15.0%   41.0%  ##
+	[ 83,  87)   48   48.0%   89.0%  #####
+	[ 87,  92)    7    7.0%   96.0%  #
+	[ 92,  98)    4    4.0%  100.0%  
+	[ 98, 105)    0    0.0%  100.0%  
+	[105, 114)    0    0.0%  100.0%  
+	[114, 125)    0    0.0%  100.0%  
+	[125, 138)    0    0.0%  100.0%  
+	[138, 155)    0    0.0%  100.0%  
+	[155, 175)    0    0.0%  100.0%  
+	[175, inf)    0    0.0%  100.0%  
+Benchmark___1K_chunk____1KB	      50	 152120390 ns/op	  13.15 MB/s
 --- Histogram (unit: ms)
-	Count: 30  Min: 264  Max: 299  Avg: 275.97
+	Count: 50  Min: 145  Max: 161  Avg: 151.72
 	------------------------------------------------------------
-	[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%  
+	[145, 146)   1    2.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
+	[147, 148)   1    2.0%    6.0%  
+	[148, 149)   2    4.0%   10.0%  
+	[149, 151)  17   34.0%   44.0%  ###
+	[151, 153)   8   16.0%   60.0%  ##
+	[153, 156)  16   32.0%   92.0%  ###
+	[156, 159)   2    4.0%   96.0%  
+	[159, 163)   2    4.0%  100.0%  
+	[163, 168)   0    0.0%  100.0%  
+	[168, 174)   0    0.0%  100.0%  
+	[174, 181)   0    0.0%  100.0%  
+	[181, 190)   0    0.0%  100.0%  
+	[190, 201)   0    0.0%  100.0%  
+	[201, 214)   0    0.0%  100.0%  
+	[214, 230)   0    0.0%  100.0%  
+	[230, inf)   0    0.0%  100.0%  
+Benchmark___1K_chunk____1KB-2	     100	  91860277 ns/op	  21.77 MB/s
 --- Histogram (unit: ms)
-	Count: 20  Min: 458  Max: 491  Avg: 468.40
+	Count: 100  Min: 80  Max: 106  Avg: 91.33
 	------------------------------------------------------------
-	[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
+	[ 80,  81)    2    2.0%    2.0%  
+	[ 81,  82)    2    2.0%    4.0%  
+	[ 82,  83)    3    3.0%    7.0%  
+	[ 83,  84)    4    4.0%   11.0%  
+	[ 84,  86)   10   10.0%   21.0%  #
+	[ 86,  88)   11   11.0%   32.0%  #
+	[ 88,  91)   14   14.0%   46.0%  #
+	[ 91,  95)   19   19.0%   65.0%  ##
+	[ 95, 100)   26   26.0%   91.0%  ###
+	[100, 107)    9    9.0%  100.0%  #
+	[107, 115)    0    0.0%  100.0%  
+	[115, 125)    0    0.0%  100.0%  
+	[125, 138)    0    0.0%  100.0%  
+	[138, 154)    0    0.0%  100.0%  
+	[154, 174)    0    0.0%  100.0%  
+	[174, 199)    0    0.0%  100.0%  
+	[199, inf)    0    0.0%  100.0%  
+Benchmark___1K_chunk___10KB	      20	 337020835 ns/op	  59.34 MB/s
 --- Histogram (unit: ms)
-	Count: 30  Min: 242  Max: 275  Avg: 263.13
+	Count: 20  Min: 331  Max: 342  Avg: 336.50
 	------------------------------------------------------------
-	[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
+	[331, 332)   1    5.0%    5.0%  #
+	[332, 333)   2   10.0%   15.0%  #
+	[333, 334)   1    5.0%   20.0%  #
+	[334, 335)   3   15.0%   35.0%  ##
+	[335, 336)   2   10.0%   45.0%  #
+	[336, 338)   2   10.0%   55.0%  #
+	[338, 340)   5   25.0%   80.0%  ###
+	[340, 343)   4   20.0%  100.0%  ##
+	[343, 346)   0    0.0%  100.0%  
+	[346, 350)   0    0.0%  100.0%  
+	[350, 354)   0    0.0%  100.0%  
+	[354, inf)   0    0.0%  100.0%  
+Benchmark___1K_chunk___10KB-2	      50	 177497001 ns/op	 112.68 MB/s
+--- Histogram (unit: ms)
+	Count: 50  Min: 172  Max: 183  Avg: 176.96
+	------------------------------------------------------------
+	[172, 173)   4    8.0%    8.0%  #
+	[173, 174)   2    4.0%   12.0%  
+	[174, 175)   8   16.0%   28.0%  ##
+	[175, 176)   4    8.0%   36.0%  #
+	[176, 177)   2    4.0%   40.0%  
+	[177, 179)   9   18.0%   58.0%  ##
+	[179, 181)  18   36.0%   94.0%  ####
+	[181, 184)   3    6.0%  100.0%  #
+	[184, 187)   0    0.0%  100.0%  
+	[187, 191)   0    0.0%  100.0%  
+	[191, 195)   0    0.0%  100.0%  
+	[195, inf)   0    0.0%  100.0%  
+Benchmark___1K_chunk__100KB	       3	2185333858 ns/op	  91.52 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
+Benchmark___1K_chunk__100KB-2	       5	1140505127 ns/op	 175.36 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__per_chunk____1B	   50000	    127847 ns/op	   0.02 MB/s
+Benchmark__per_chunk____1B-2	  100000	     81496 ns/op	   0.02 MB/s
+Benchmark__per_chunk___10B	   50000	    125213 ns/op	   0.16 MB/s
+Benchmark__per_chunk___10B-2	  100000	     79532 ns/op	   0.25 MB/s
+Benchmark__per_chunk__100B	   50000	    126242 ns/op	   1.58 MB/s
+Benchmark__per_chunk__100B-2	  100000	     77971 ns/op	   2.57 MB/s
+Benchmark__per_chunk___1KB	   50000	    148314 ns/op	  13.48 MB/s
+Benchmark__per_chunk___1KB-2	  100000	     87787 ns/op	  22.78 MB/s
+Benchmark__per_chunk__10KB	   20000	    323521 ns/op	  61.82 MB/s
+Benchmark__per_chunk__10KB-2	   50000	    172500 ns/op	 115.94 MB/s
+Benchmark__per_chunk_100KB	    3000	   2065561 ns/op	  96.83 MB/s
+Benchmark__per_chunk_100KB-2	   10000	   1062338 ns/op	 188.26 MB/s
 
-Benchmark___10B_mux__100_chunks___10B	     300	  26348223 ns/op	   0.00 MB/s
+Benchmark___10B_mux__100_chunks___10B	     500	  16428840 ns/op	   0.00 MB/s
 --- Histogram (unit: ms)
-	Count: 300  Min: 9  Max: 30  Avg: 25.79
+	Count: 500  Min: 8  Max: 18  Avg: 16.03
 	------------------------------------------------------------
-	[  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
+	[  8,   9)    4    0.8%    0.8%  
+	[  9,  10)    0    0.0%    0.8%  
+	[ 10,  11)    0    0.0%    0.8%  
+	[ 11,  12)    1    0.2%    1.0%  
+	[ 12,  13)    3    0.6%    1.6%  
+	[ 13,  15)    5    1.0%    2.6%  
+	[ 15,  17)  403   80.6%   83.2%  ########
+	[ 17,  19)   84   16.8%  100.0%  ##
+	[ 19,  22)    0    0.0%  100.0%  
+	[ 22,  25)    0    0.0%  100.0%  
+	[ 25, inf)    0    0.0%  100.0%  
+Benchmark___10B_mux__100_chunks___10B-2	    2000	   4039798 ns/op	   0.00 MB/s
 --- Histogram (unit: ms)
-	Count: 1000  Min: 4  Max: 17  Avg: 8.54
+	Count: 2000  Min: 1  Max: 10  Avg: 3.55
 	------------------------------------------------------------
-	[  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
+	[  1,   2)   104    5.2%    5.2%  #
+	[  2,   3)   588   29.4%   34.6%  ###
+	[  3,   4)   397   19.9%   54.5%  ##
+	[  4,   5)   375   18.8%   73.2%  ##
+	[  5,   6)   278   13.9%   87.1%  #
+	[  6,   8)   208   10.4%   97.5%  #
+	[  8,  10)    48    2.4%   99.9%  
+	[ 10,  12)     2    0.1%  100.0%  
+	[ 12,  15)     0    0.0%  100.0%  
+	[ 15, inf)     0    0.0%  100.0%  
+Benchmark___10B_mux__100_chunks__100B	     500	  16959639 ns/op	   0.00 MB/s
 --- Histogram (unit: ms)
-	Count: 300  Min: 9  Max: 34  Avg: 28.80
+	Count: 500  Min: 10  Max: 19  Avg: 16.44
 	------------------------------------------------------------
-	[  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
+	[ 10,  11)    3    0.6%    0.6%  
+	[ 11,  12)    0    0.0%    0.6%  
+	[ 12,  13)    3    0.6%    1.2%  
+	[ 13,  14)    1    0.2%    1.4%  
+	[ 14,  15)   77   15.4%   16.8%  ##
+	[ 15,  17)  122   24.4%   41.2%  ##
+	[ 17,  19)  286   57.2%   98.4%  ######
+	[ 19,  21)    8    1.6%  100.0%  
+	[ 21,  24)    0    0.0%  100.0%  
+	[ 24, inf)    0    0.0%  100.0%  
+Benchmark___10B_mux__100_chunks__100B-2	    2000	   4129118 ns/op	   0.00 MB/s
 --- Histogram (unit: ms)
-	Count: 1000  Min: 5  Max: 21  Avg: 9.74
+	Count: 2000  Min: 1  Max: 12  Avg: 3.64
 	------------------------------------------------------------
-	[  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
+	[  1,   2)    77    3.9%    3.9%  
+	[  2,   3)   693   34.6%   38.5%  ###
+	[  3,   4)   407   20.4%   58.9%  ##
+	[  4,   5)   308   15.4%   74.2%  ##
+	[  5,   6)   182    9.1%   83.4%  #
+	[  6,   8)   213   10.7%   94.0%  #
+	[  8,  10)    91    4.5%   98.6%  
+	[ 10,  13)    29    1.5%  100.0%  
+	[ 13,  16)     0    0.0%  100.0%  
+	[ 16,  20)     0    0.0%  100.0%  
+	[ 20,  24)     0    0.0%  100.0%  
+	[ 24, inf)     0    0.0%  100.0%  
+Benchmark___10B_mux__100_chunks___1KB	     500	  19240324 ns/op	   0.00 MB/s
 --- Histogram (unit: ms)
-	Count: 300  Min: 9  Max: 38  Avg: 29.57
+	Count: 500  Min: 13  Max: 24  Avg: 18.60
 	------------------------------------------------------------
-	[  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
+	[ 13,  14)    1    0.2%    0.2%  
+	[ 14,  15)    0    0.0%    0.2%  
+	[ 15,  16)    0    0.0%    0.2%  
+	[ 16,  17)  152   30.4%   30.6%  ###
+	[ 17,  18)   75   15.0%   45.6%  ##
+	[ 18,  20)   58   11.6%   57.2%  #
+	[ 20,  22)  179   35.8%   93.0%  ####
+	[ 22,  25)   35    7.0%  100.0%  #
+	[ 25,  28)    0    0.0%  100.0%  
+	[ 28,  32)    0    0.0%  100.0%  
+	[ 32,  36)    0    0.0%  100.0%  
+	[ 36, inf)    0    0.0%  100.0%  
+Benchmark___10B_mux__100_chunks___1KB-2	    2000	   4765628 ns/op	   0.00 MB/s
 --- Histogram (unit: ms)
-	Count: 1000  Min: 4  Max: 22  Avg: 10.61
+	Count: 2000  Min: 1  Max: 15  Avg: 4.29
 	------------------------------------------------------------
-	[  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%  
+	[  1,   2)    49    2.5%    2.5%  
+	[  2,   3)   573   28.7%   31.1%  ###
+	[  3,   4)   411   20.6%   51.7%  ##
+	[  4,   5)   262   13.1%   64.8%  #
+	[  5,   7)   369   18.4%   83.2%  ##
+	[  7,   9)   150    7.5%   90.7%  #
+	[  9,  11)    87    4.4%   95.1%  
+	[ 11,  14)    90    4.5%   99.6%  
+	[ 14,  18)     9    0.5%  100.0%  
+	[ 18,  22)     0    0.0%  100.0%  
+	[ 22,  27)     0    0.0%  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
+	[ 41,  50)     0    0.0%  100.0%  
+	[ 50, inf)     0    0.0%  100.0%  
+Benchmark___10B_mux__100_chunks__10KB	     200	  38595003 ns/op	   0.00 MB/s
 --- Histogram (unit: ms)
-	Count: 200  Min: 9  Max: 57  Avg: 44.30
+	Count: 200  Min: 8  Max: 43  Avg: 38.09
 	------------------------------------------------------------
-	[  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
+	[  8,   9)    2    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,  15)    0    0.0%    1.0%  
+	[ 15,  18)    0    0.0%    1.0%  
+	[ 18,  22)    0    0.0%    1.0%  
+	[ 22,  27)    0    0.0%    1.0%  
+	[ 27,  33)    2    1.0%    2.0%  
+	[ 33,  41)  125   62.5%   64.5%  ######
+	[ 41,  51)   71   35.5%  100.0%  ####
+	[ 51,  64)    0    0.0%  100.0%  
+	[ 64,  81)    0    0.0%  100.0%  
+	[ 81, 102)    0    0.0%  100.0%  
+	[102, 129)    0    0.0%  100.0%  
+	[129, 163)    0    0.0%  100.0%  
+	[163, inf)    0    0.0%  100.0%  
+Benchmark___10B_mux__100_chunks__10KB-2	     500	  13282699 ns/op	   0.00 MB/s
 --- Histogram (unit: ms)
-	Count: 300  Min: 4  Max: 41  Avg: 23.28
+	Count: 500  Min: 1  Max: 27  Avg: 12.81
 	------------------------------------------------------------
-	[  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
+	[  1,   2)   12    2.4%    2.4%  
+	[  2,   3)   87   17.4%   19.8%  ##
+	[  3,   4)   19    3.8%   23.6%  
+	[  4,   5)   19    3.8%   27.4%  
+	[  5,   7)   23    4.6%   32.0%  
+	[  7,   9)   25    5.0%   37.0%  #
+	[  9,  12)   31    6.2%   43.2%  #
+	[ 12,  16)   45    9.0%   52.2%  #
+	[ 16,  21)  130   26.0%   78.2%  ###
+	[ 21,  28)  109   21.8%  100.0%  ##
+	[ 28,  36)    0    0.0%  100.0%  
+	[ 36,  46)    0    0.0%  100.0%  
+	[ 46,  59)    0    0.0%  100.0%  
+	[ 59,  75)    0    0.0%  100.0%  
+	[ 75,  95)    0    0.0%  100.0%  
+	[ 95, 120)    0    0.0%  100.0%  
+	[120, inf)    0    0.0%  100.0%  
+Benchmark___10B_mux___1K_chunks___10B	     100	  89458344 ns/op	   0.00 MB/s
 --- Histogram (unit: ms)
-	Count: 100  Min: 12  Max: 215  Avg: 131.05
+	Count: 100  Min: 21  Max: 141  Avg: 88.95
 	------------------------------------------------------------
-	[ 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
+	[ 21,  22)    1    1.0%    1.0%  
+	[ 22,  23)    0    0.0%    1.0%  
+	[ 23,  24)    0    0.0%    1.0%  
+	[ 24,  26)    0    0.0%    1.0%  
+	[ 26,  29)    2    2.0%    3.0%  
+	[ 29,  33)    1    1.0%    4.0%  
+	[ 33,  39)    1    1.0%    5.0%  
+	[ 39,  48)    5    5.0%   10.0%  #
+	[ 48,  60)   12   12.0%   22.0%  #
+	[ 60,  77)   18   18.0%   40.0%  ##
+	[ 77, 101)   21   21.0%   61.0%  ##
+	[101, 134)   33   33.0%   94.0%  ###
+	[134, 180)    6    6.0%  100.0%  #
+	[180, 243)    0    0.0%  100.0%  
+	[243, 330)    0    0.0%  100.0%  
+	[330, 449)    0    0.0%  100.0%  
+	[449, inf)    0    0.0%  100.0%  
+Benchmark___10B_mux___1K_chunks___10B-2	    2000	   5537208 ns/op	   0.00 MB/s
 --- Histogram (unit: ms)
-	Count: 300  Min: 5  Max: 108  Avg: 26.37
+	Count: 2000  Min: 1  Max: 46  Avg: 5.05
 	------------------------------------------------------------
-	[  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
+	[  1,   2)    36    1.8%    1.8%  
+	[  2,   3)   785   39.2%   41.1%  ####
+	[  3,   4)   580   29.0%   70.0%  ###
+	[  4,   6)   266   13.3%   83.4%  #
+	[  6,   8)    59    3.0%   86.3%  
+	[  8,  11)    48    2.4%   88.7%  
+	[ 11,  15)    76    3.8%   92.5%  
+	[ 15,  20)    37    1.9%   94.4%  
+	[ 20,  27)    54    2.7%   97.1%  
+	[ 27,  36)    36    1.8%   98.9%  
+	[ 36,  48)    23    1.2%  100.0%  
+	[ 48,  64)     0    0.0%  100.0%  
+	[ 64,  85)     0    0.0%  100.0%  
+	[ 85, 112)     0    0.0%  100.0%  
+	[112, 146)     0    0.0%  100.0%  
+	[146, 190)     0    0.0%  100.0%  
+	[190, inf)     0    0.0%  100.0%  
+Benchmark___10B_mux___1K_chunks__100B	     100	  95560922 ns/op	   0.00 MB/s
 --- Histogram (unit: ms)
-	Count: 50  Min: 73  Max: 233  Avg: 159.76
+	Count: 100  Min: 4  Max: 154  Avg: 95.10
 	------------------------------------------------------------
-	[ 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
+	[  4,   5)    1    1.0%    1.0%  
+	[  5,   6)    0    0.0%    1.0%  
+	[  6,   7)    0    0.0%    1.0%  
+	[  7,   9)    1    1.0%    2.0%  
+	[  9,  12)    0    0.0%    2.0%  
+	[ 12,  17)    0    0.0%    2.0%  
+	[ 17,  24)    2    2.0%    4.0%  
+	[ 24,  34)    0    0.0%    4.0%  
+	[ 34,  48)    2    2.0%    6.0%  
+	[ 48,  68)   18   18.0%   24.0%  ##
+	[ 68,  96)   25   25.0%   49.0%  ###
+	[ 96, 135)   35   35.0%   84.0%  ####
+	[135, 190)   16   16.0%  100.0%  ##
+	[190, 266)    0    0.0%  100.0%  
+	[266, 373)    0    0.0%  100.0%  
+	[373, 522)    0    0.0%  100.0%  
+	[522, inf)    0    0.0%  100.0%  
+Benchmark___10B_mux___1K_chunks__100B-2	    2000	   5772039 ns/op	   0.00 MB/s
 --- Histogram (unit: ms)
-	Count: 200  Min: 4  Max: 124  Avg: 37.60
+	Count: 2000  Min: 1  Max: 48  Avg: 5.29
 	------------------------------------------------------------
-	[  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
+	[  1,   2)    19    1.0%    1.0%  
+	[  2,   3)   754   37.7%   38.7%  ####
+	[  3,   4)   569   28.5%   67.1%  ###
+	[  4,   6)   329   16.4%   83.6%  ##
+	[  6,   8)    56    2.8%   86.4%  
+	[  8,  11)    45    2.2%   88.6%  
+	[ 11,  15)    34    1.7%   90.3%  
+	[ 15,  21)    75    3.8%   94.1%  
+	[ 21,  28)    75    3.8%   97.8%  
+	[ 28,  38)    24    1.2%   99.0%  
+	[ 38,  51)    20    1.0%  100.0%  
+	[ 51,  67)     0    0.0%  100.0%  
+	[ 67,  88)     0    0.0%  100.0%  
+	[ 88, 116)     0    0.0%  100.0%  
+	[116, 152)     0    0.0%  100.0%  
+	[152, 198)     0    0.0%  100.0%  
+	[198, inf)     0    0.0%  100.0%  
+Benchmark___10B_mux___1K_chunks___1KB	     100	 104839465 ns/op	   0.00 MB/s
 --- Histogram (unit: ms)
-	Count: 100  Min: 9  Max: 265  Avg: 163.45
+	Count: 100  Min: 9  Max: 179  Avg: 104.38
 	------------------------------------------------------------
-	[  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
+	[  9,  10)    3    3.0%    3.0%  
+	[ 10,  11)    0    0.0%    3.0%  
+	[ 11,  12)    1    1.0%    4.0%  
+	[ 12,  14)    1    1.0%    5.0%  
+	[ 14,  17)    0    0.0%    5.0%  
+	[ 17,  22)    0    0.0%    5.0%  
+	[ 22,  29)    0    0.0%    5.0%  
+	[ 29,  39)    3    3.0%    8.0%  
+	[ 39,  54)    3    3.0%   11.0%  
+	[ 54,  75)    9    9.0%   20.0%  #
+	[ 75, 105)   35   35.0%   55.0%  ####
+	[105, 148)   20   20.0%   75.0%  ##
+	[148, 208)   25   25.0%  100.0%  ###
+	[208, 293)    0    0.0%  100.0%  
+	[293, 413)    0    0.0%  100.0%  
+	[413, 583)    0    0.0%  100.0%  
+	[583, inf)    0    0.0%  100.0%  
+Benchmark___10B_mux___1K_chunks___1KB-2	    1000	   7235554 ns/op	   0.00 MB/s
 --- Histogram (unit: ms)
-	Count: 200  Min: 4  Max: 137  Avg: 43.13
+	Count: 1000  Min: 1  Max: 55  Avg: 6.74
 	------------------------------------------------------------
-	[  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
+	[  1,   2)    10    1.0%    1.0%  
+	[  2,   3)   240   24.0%   25.0%  ##
+	[  3,   4)   272   27.2%   52.2%  ###
+	[  4,   6)   265   26.5%   78.7%  ###
+	[  6,   8)    44    4.4%   83.1%  
+	[  8,  11)    30    3.0%   86.1%  
+	[ 11,  15)    22    2.2%   88.3%  
+	[ 15,  21)    38    3.8%   92.1%  
+	[ 21,  29)    20    2.0%   94.1%  
+	[ 29,  39)    32    3.2%   97.3%  
+	[ 39,  53)    25    2.5%   99.8%  
+	[ 53,  71)     2    0.2%  100.0%  
+	[ 71,  95)     0    0.0%  100.0%  
+	[ 95, 126)     0    0.0%  100.0%  
+	[126, 167)     0    0.0%  100.0%  
+	[167, 221)     0    0.0%  100.0%  
+	[221, inf)     0    0.0%  100.0%  
+Benchmark___10B_mux___1K_chunks__10KB	     100	  72299884 ns/op	   0.00 MB/s
 --- Histogram (unit: ms)
-	Count: 100  Min: 8  Max: 138  Avg: 92.97
+	Count: 100  Min: 8  Max: 122  Avg: 71.77
 	------------------------------------------------------------
 	[  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
+	[ 16,  20)    4    4.0%    5.0%  
+	[ 20,  26)    0    0.0%    5.0%  
+	[ 26,  35)    4    4.0%    9.0%  
+	[ 35,  47)   11   11.0%   20.0%  #
+	[ 47,  64)   12   12.0%   32.0%  #
+	[ 64,  87)   42   42.0%   74.0%  ####
+	[ 87, 119)   24   24.0%   98.0%  ##
+	[119, 163)    2    2.0%  100.0%  
+	[163, 223)    0    0.0%  100.0%  
+	[223, 306)    0    0.0%  100.0%  
+	[306, 420)    0    0.0%  100.0%  
+	[420, inf)    0    0.0%  100.0%  
+Benchmark___10B_mux___1K_chunks__10KB-2	     200	  36957063 ns/op	   0.00 MB/s
 --- Histogram (unit: ms)
-	Count: 100  Min: 5  Max: 89  Avg: 53.92
+	Count: 200  Min: 2  Max: 72  Avg: 36.49
 	------------------------------------------------------------
-	[  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
+	[  2,   3)    8    4.0%    4.0%  
+	[  3,   4)    5    2.5%    6.5%  
+	[  4,   5)    6    3.0%    9.5%  
+	[  5,   7)    3    1.5%   11.0%  
+	[  7,  10)    6    3.0%   14.0%  
+	[ 10,  14)    6    3.0%   17.0%  
+	[ 14,  19)    8    4.0%   21.0%  
+	[ 19,  26)   12    6.0%   27.0%  #
+	[ 26,  35)   31   15.5%   42.5%  ##
+	[ 35,  47)   48   24.0%   66.5%  ##
+	[ 47,  63)   52   26.0%   92.5%  ###
+	[ 63,  85)   15    7.5%  100.0%  #
+	[ 85, 114)    0    0.0%  100.0%  
+	[114, 153)    0    0.0%  100.0%  
+	[153, 205)    0    0.0%  100.0%  
+	[205, 274)    0    0.0%  100.0%  
+	[274, inf)    0    0.0%  100.0%  
+Benchmark___1KB_mux__100_chunks___10B	     500	  17595461 ns/op	   0.11 MB/s
 --- Histogram (unit: ms)
-	Count: 300  Min: 8  Max: 32  Avg: 25.48
+	Count: 500  Min: 7  Max: 35  Avg: 17.11
 	------------------------------------------------------------
-	[  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%  
+	[  7,   8)    1    0.2%    0.2%  
+	[  8,   9)    1    0.2%    0.4%  
+	[  9,  10)    0    0.0%    0.4%  
+	[ 10,  11)    0    0.0%    0.4%  
+	[ 11,  13)    4    0.8%    1.2%  
+	[ 13,  16)  380   76.0%   77.2%  ########
+	[ 16,  19)   43    8.6%   85.8%  #
+	[ 19,  23)    2    0.4%   86.2%  
+	[ 23,  28)   14    2.8%   89.0%  
+	[ 28,  35)   54   10.8%   99.8%  #
+	[ 35,  44)    1    0.2%  100.0%  
+	[ 44,  55)    0    0.0%  100.0%  
+	[ 55,  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
+	[ 86, 108)    0    0.0%  100.0%  
+	[108, 135)    0    0.0%  100.0%  
+	[135, inf)    0    0.0%  100.0%  
+Benchmark___1KB_mux__100_chunks___10B-2	    2000	   4157817 ns/op	   0.48 MB/s
 --- Histogram (unit: ms)
-	Count: 1000  Min: 4  Max: 23  Avg: 7.96
+	Count: 2000  Min: 1  Max: 22  Avg: 3.67
 	------------------------------------------------------------
-	[  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%  
+	[  1,   2)    29    1.5%    1.5%  
+	[  2,   3)   804   40.2%   41.7%  ####
+	[  3,   4)   550   27.5%   69.2%  ###
+	[  4,   5)   289   14.5%   83.6%  #
+	[  5,   7)   160    8.0%   91.6%  #
+	[  7,   9)    31    1.6%   93.2%  
+	[  9,  12)    63    3.2%   96.3%  
+	[ 12,  16)    32    1.6%   97.9%  
+	[ 16,  21)    36    1.8%   99.7%  
+	[ 21,  27)     6    0.3%  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
+	[ 34,  43)     0    0.0%  100.0%  
+	[ 43,  54)     0    0.0%  100.0%  
+	[ 54,  67)     0    0.0%  100.0%  
+	[ 67,  84)     0    0.0%  100.0%  
+	[ 84, 104)     0    0.0%  100.0%  
+	[104, inf)     0    0.0%  100.0%  
+Benchmark___1KB_mux__100_chunks__100B	     500	  18203976 ns/op	   0.11 MB/s
 --- Histogram (unit: ms)
-	Count: 200  Min: 9  Max: 44  Avg: 31.49
+	Count: 500  Min: 8  Max: 39  Avg: 17.78
 	------------------------------------------------------------
-	[  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
+	[  8,   9)    1    0.2%    0.2%  
+	[  9,  10)    0    0.0%    0.2%  
+	[ 10,  11)    0    0.0%    0.2%  
+	[ 11,  12)    0    0.0%    0.2%  
+	[ 12,  14)    5    1.0%    1.2%  
+	[ 14,  17)  405   81.0%   82.2%  ########
+	[ 17,  20)   21    4.2%   86.4%  
+	[ 20,  24)    1    0.2%   86.6%  
+	[ 24,  30)    8    1.6%   88.2%  
+	[ 30,  37)   54   10.8%   99.0%  #
+	[ 37,  46)    5    1.0%  100.0%  
+	[ 46,  58)    0    0.0%  100.0%  
+	[ 58,  73)    0    0.0%  100.0%  
+	[ 73,  92)    0    0.0%  100.0%  
+	[ 92, 116)    0    0.0%  100.0%  
+	[116, 146)    0    0.0%  100.0%  
+	[146, inf)    0    0.0%  100.0%  
+Benchmark___1KB_mux__100_chunks__100B-2	    2000	   4271254 ns/op	   0.47 MB/s
 --- Histogram (unit: ms)
-	Count: 1000  Min: 4  Max: 28  Avg: 11.20
+	Count: 2000  Min: 1  Max: 26  Avg: 3.79
 	------------------------------------------------------------
-	[  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%  
+	[  1,   2)    31    1.6%    1.6%  
+	[  2,   3)   761   38.1%   39.6%  ####
+	[  3,   4)   550   27.5%   67.1%  ###
+	[  4,   5)   316   15.8%   82.9%  ##
+	[  5,   7)   166    8.3%   91.2%  #
+	[  7,   9)    25    1.2%   92.5%  
+	[  9,  12)    65    3.2%   95.7%  
+	[ 12,  16)    48    2.4%   98.1%  
+	[ 16,  21)    22    1.1%   99.2%  
+	[ 21,  27)    16    0.8%  100.0%  
+	[ 27,  35)     0    0.0%  100.0%  
+	[ 35,  45)     0    0.0%  100.0%  
+	[ 45,  58)     0    0.0%  100.0%  
+	[ 58,  74)     0    0.0%  100.0%  
+	[ 74,  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
+Benchmark___1KB_mux__100_chunks___1KB	     300	  20682669 ns/op	   0.10 MB/s
 --- Histogram (unit: ms)
-	Count: 200  Min: 9  Max: 61  Avg: 47.74
+	Count: 300  Min: 13  Max: 41  Avg: 20.18
 	------------------------------------------------------------
-	[  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
+	[ 13,  14)    1    0.3%    0.3%  
+	[ 14,  15)    2    0.7%    1.0%  
+	[ 15,  16)    0    0.0%    1.0%  
+	[ 16,  17)    0    0.0%    1.0%  
+	[ 17,  19)  245   81.7%   82.7%  ########
+	[ 19,  22)    8    2.7%   85.3%  
+	[ 22,  25)    5    1.7%   87.0%  
+	[ 25,  29)    0    0.0%   87.0%  
+	[ 29,  34)    1    0.3%   87.3%  
+	[ 34,  41)   28    9.3%   96.7%  #
+	[ 41,  50)   10    3.3%  100.0%  
+	[ 50,  61)    0    0.0%  100.0%  
+	[ 61,  75)    0    0.0%  100.0%  
+	[ 75,  92)    0    0.0%  100.0%  
+	[ 92, 114)    0    0.0%  100.0%  
+	[114, 141)    0    0.0%  100.0%  
+	[141, inf)    0    0.0%  100.0%  
+Benchmark___1KB_mux__100_chunks___1KB-2	    2000	   4950276 ns/op	   0.40 MB/s
 --- Histogram (unit: ms)
-	Count: 300  Min: 4  Max: 42  Avg: 24.07
+	Count: 2000  Min: 1  Max: 26  Avg: 4.46
 	------------------------------------------------------------
-	[  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
+	[  1,   2)    12    0.6%    0.6%  
+	[  2,   3)   546   27.3%   27.9%  ###
+	[  3,   4)   517   25.9%   53.8%  ###
+	[  4,   5)   354   17.7%   71.5%  ##
+	[  5,   7)   341   17.1%   88.5%  ##
+	[  7,   9)    60    3.0%   91.5%  
+	[  9,  12)    37    1.9%   93.4%  
+	[ 12,  16)    76    3.8%   97.2%  
+	[ 16,  21)    20    1.0%   98.2%  
+	[ 21,  27)    37    1.9%  100.0%  
+	[ 27,  35)     0    0.0%  100.0%  
+	[ 35,  45)     0    0.0%  100.0%  
+	[ 45,  58)     0    0.0%  100.0%  
+	[ 58,  74)     0    0.0%  100.0%  
+	[ 74,  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	  39416624 ns/op	   0.05 MB/s
 --- Histogram (unit: ms)
-	Count: 100  Min: 10  Max: 209  Avg: 131.34
+	Count: 200  Min: 14  Max: 57  Avg: 38.98
 	------------------------------------------------------------
-	[ 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
+	[ 14,  15)    2    1.0%    1.0%  
+	[ 15,  16)    0    0.0%    1.0%  
+	[ 16,  17)    0    0.0%    1.0%  
+	[ 17,  19)    2    1.0%    2.0%  
+	[ 19,  21)    0    0.0%    2.0%  
+	[ 21,  24)    0    0.0%    2.0%  
+	[ 24,  28)    0    0.0%    2.0%  
+	[ 28,  33)    4    2.0%    4.0%  
+	[ 33,  40)  130   65.0%   69.0%  #######
+	[ 40,  49)   16    8.0%   77.0%  #
+	[ 49,  61)   46   23.0%  100.0%  ##
+	[ 61,  76)    0    0.0%  100.0%  
+	[ 76,  96)    0    0.0%  100.0%  
+	[ 96, 122)    0    0.0%  100.0%  
+	[122, 155)    0    0.0%  100.0%  
+	[155, 198)    0    0.0%  100.0%  
+	[198, inf)    0    0.0%  100.0%  
+Benchmark___1KB_mux__100_chunks__10KB-2	     500	  13370112 ns/op	   0.15 MB/s
 --- Histogram (unit: ms)
-	Count: 300  Min: 4  Max: 101  Avg: 22.88
+	Count: 500  Min: 1  Max: 35  Avg: 12.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
+	[  1,   2)    6    1.2%    1.2%  
+	[  2,   3)   94   18.8%   20.0%  ##
+	[  3,   4)   29    5.8%   25.8%  #
+	[  4,   6)   22    4.4%   30.2%  
+	[  6,   8)   15    3.0%   33.2%  
+	[  8,  11)   55   11.0%   44.2%  #
+	[ 11,  15)   31    6.2%   50.4%  #
+	[ 15,  20)  174   34.8%   85.2%  ###
+	[ 20,  26)   14    2.8%   88.0%  
+	[ 26,  34)   54   10.8%   98.8%  #
+	[ 34,  44)    6    1.2%  100.0%  
+	[ 44,  57)    0    0.0%  100.0%  
+	[ 57,  73)    0    0.0%  100.0%  
+	[ 73,  94)    0    0.0%  100.0%  
+	[ 94, 120)    0    0.0%  100.0%  
+	[120, 153)    0    0.0%  100.0%  
+	[153, inf)    0    0.0%  100.0%  
+Benchmark___1KB_mux___1K_chunks___10B	     100	  95315574 ns/op	   0.02 MB/s
 --- Histogram (unit: ms)
-	Count: 50  Min: 22  Max: 222  Avg: 137.50
+	Count: 100  Min: 23  Max: 150  Avg: 94.81
 	------------------------------------------------------------
-	[ 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
+	[ 23,  24)    1    1.0%    1.0%  
+	[ 24,  25)    0    0.0%    1.0%  
+	[ 25,  26)    0    0.0%    1.0%  
+	[ 26,  28)    1    1.0%    2.0%  
+	[ 28,  31)    0    0.0%    2.0%  
+	[ 31,  36)    1    1.0%    3.0%  
+	[ 36,  42)    2    2.0%    5.0%  
+	[ 42,  51)    5    5.0%   10.0%  #
+	[ 51,  64)    7    7.0%   17.0%  #
+	[ 64,  82)   17   17.0%   34.0%  ##
+	[ 82, 107)   24   24.0%   58.0%  ##
+	[107, 141)   38   38.0%   96.0%  ####
+	[141, 189)    4    4.0%  100.0%  
+	[189, 255)    0    0.0%  100.0%  
+	[255, 346)    0    0.0%  100.0%  
+	[346, 472)    0    0.0%  100.0%  
+	[472, inf)    0    0.0%  100.0%  
+Benchmark___1KB_mux___1K_chunks___10B-2	    2000	   5107260 ns/op	   0.39 MB/s
 --- Histogram (unit: ms)
-	Count: 200  Min: 5  Max: 117  Avg: 29.41
+	Count: 2000  Min: 1  Max: 46  Avg: 4.61
 	------------------------------------------------------------
-	[  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
+	[  1,   2)    15    0.8%    0.8%  
+	[  2,   3)   792   39.6%   40.4%  ####
+	[  3,   4)   669   33.5%   73.8%  ###
+	[  4,   6)   289   14.5%   88.2%  #
+	[  6,   8)    28    1.4%   89.7%  
+	[  8,  11)    23    1.2%   90.8%  
+	[ 11,  15)    34    1.7%   92.5%  
+	[ 15,  20)    36    1.8%   94.3%  
+	[ 20,  27)    71    3.6%   97.9%  
+	[ 27,  36)    37    1.9%   99.7%  
+	[ 36,  48)     6    0.3%  100.0%  
+	[ 48,  64)     0    0.0%  100.0%  
+	[ 64,  85)     0    0.0%  100.0%  
+	[ 85, 112)     0    0.0%  100.0%  
+	[112, 146)     0    0.0%  100.0%  
+	[146, 190)     0    0.0%  100.0%  
+	[190, inf)     0    0.0%  100.0%  
+Benchmark___1KB_mux___1K_chunks__100B	     100	  94447578 ns/op	   0.02 MB/s
 --- Histogram (unit: ms)
-	Count: 50  Min: 19  Max: 292  Avg: 165.50
+	Count: 100  Min: 2  Max: 149  Avg: 93.96
 	------------------------------------------------------------
-	[ 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
+	[  2,   3)    1    1.0%    1.0%  
+	[  3,   4)    0    0.0%    1.0%  
+	[  4,   5)    0    0.0%    1.0%  
+	[  5,   7)    0    0.0%    1.0%  
+	[  7,  10)    2    2.0%    3.0%  
+	[ 10,  15)    0    0.0%    3.0%  
+	[ 15,  22)    1    1.0%    4.0%  
+	[ 22,  32)    2    2.0%    6.0%  
+	[ 32,  46)    7    7.0%   13.0%  #
+	[ 46,  65)    9    9.0%   22.0%  #
+	[ 65,  92)   20   20.0%   42.0%  ##
+	[ 92, 130)   40   40.0%   82.0%  ####
+	[130, 184)   18   18.0%  100.0%  ##
+	[184, 259)    0    0.0%  100.0%  
+	[259, 364)    0    0.0%  100.0%  
+	[364, 511)    0    0.0%  100.0%  
+	[511, inf)    0    0.0%  100.0%  
+Benchmark___1KB_mux___1K_chunks__100B-2	    2000	   5333802 ns/op	   0.37 MB/s
 --- Histogram (unit: ms)
-	Count: 200  Min: 5  Max: 136  Avg: 43.85
+	Count: 2000  Min: 1  Max: 55  Avg: 4.84
 	------------------------------------------------------------
-	[  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
+	[  1,   2)    16    0.8%    0.8%  
+	[  2,   3)   766   38.3%   39.1%  ####
+	[  3,   4)   670   33.5%   72.6%  ###
+	[  4,   6)   318   15.9%   88.5%  ##
+	[  6,   8)    36    1.8%   90.3%  
+	[  8,  11)    12    0.6%   90.9%  
+	[ 11,  15)    26    1.3%   92.2%  
+	[ 15,  21)    46    2.3%   94.5%  
+	[ 21,  29)    65    3.2%   97.8%  
+	[ 29,  39)    34    1.7%   99.5%  
+	[ 39,  53)     7    0.4%   99.8%  
+	[ 53,  71)     4    0.2%  100.0%  
+	[ 71,  95)     0    0.0%  100.0%  
+	[ 95, 126)     0    0.0%  100.0%  
+	[126, 167)     0    0.0%  100.0%  
+	[167, 221)     0    0.0%  100.0%  
+	[221, inf)     0    0.0%  100.0%  
+Benchmark___1KB_mux___1K_chunks___1KB	     100	 106144273 ns/op	   0.02 MB/s
 --- Histogram (unit: ms)
-	Count: 100  Min: 10  Max: 161  Avg: 97.40
+	Count: 100  Min: 6  Max: 173  Avg: 105.63
 	------------------------------------------------------------
-	[ 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
+	[  6,   7)    1    1.0%    1.0%  
+	[  7,   8)    0    0.0%    1.0%  
+	[  8,   9)    0    0.0%    1.0%  
+	[  9,  11)    0    0.0%    1.0%  
+	[ 11,  14)    1    1.0%    2.0%  
+	[ 14,  19)    3    3.0%    5.0%  
+	[ 19,  26)    1    1.0%    6.0%  
+	[ 26,  36)    4    4.0%   10.0%  
+	[ 36,  51)    4    4.0%   14.0%  
+	[ 51,  72)    8    8.0%   22.0%  #
+	[ 72, 102)   24   24.0%   46.0%  ##
+	[102, 144)   26   26.0%   72.0%  ###
+	[144, 204)   28   28.0%  100.0%  ###
+	[204, 288)    0    0.0%  100.0%  
+	[288, 406)    0    0.0%  100.0%  
+	[406, 573)    0    0.0%  100.0%  
+	[573, inf)    0    0.0%  100.0%  
+Benchmark___1KB_mux___1K_chunks___1KB-2	    1000	   7132495 ns/op	   0.28 MB/s
 --- Histogram (unit: ms)
-	Count: 100  Min: 5  Max: 111  Avg: 59.16
+	Count: 1000  Min: 1  Max: 43  Avg: 6.64
 	------------------------------------------------------------
-	[  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%  
+	[  1,   2)    24    2.4%    2.4%  
+	[  2,   3)   286   28.6%   31.0%  ###
+	[  3,   4)   272   27.2%   58.2%  ###
+	[  4,   6)   217   21.7%   79.9%  ##
+	[  6,   8)    44    4.4%   84.3%  
+	[  8,  11)    15    1.5%   85.8%  
+	[ 11,  15)    11    1.1%   86.9%  
+	[ 15,  20)    19    1.9%   88.8%  
+	[ 20,  27)    14    1.4%   90.2%  
+	[ 27,  36)    87    8.7%   98.9%  #
+	[ 36,  48)    11    1.1%  100.0%  
+	[ 48,  63)     0    0.0%  100.0%  
+	[ 63,  82)     0    0.0%  100.0%  
+	[ 82, 107)     0    0.0%  100.0%  
+	[107, 139)     0    0.0%  100.0%  
+	[139, 181)     0    0.0%  100.0%  
+	[181, inf)     0    0.0%  100.0%  
+Benchmark___1KB_mux___1K_chunks__10KB	     100	  75825411 ns/op	   0.03 MB/s
+--- Histogram (unit: ms)
+	Count: 100  Min: 3  Max: 130  Avg: 75.35
+	------------------------------------------------------------
+	[  3,   4)    1    1.0%    1.0%  
+	[  4,   5)    0    0.0%    1.0%  
+	[  5,   6)    0    0.0%    1.0%  
+	[  6,   8)    0    0.0%    1.0%  
+	[  8,  11)    0    0.0%    1.0%  
+	[ 11,  16)    0    0.0%    1.0%  
+	[ 16,  22)    4    4.0%    5.0%  
+	[ 22,  31)    0    0.0%    5.0%  
+	[ 31,  44)    7    7.0%   12.0%  #
+	[ 44,  62)   14   14.0%   26.0%  #
+	[ 62,  87)   38   38.0%   64.0%  ####
+	[ 87, 121)   29   29.0%   93.0%  ###
+	[121, 169)    7    7.0%  100.0%  #
+	[169, 235)    0    0.0%  100.0%  
+	[235, 326)    0    0.0%  100.0%  
+	[326, 452)    0    0.0%  100.0%  
+	[452, inf)    0    0.0%  100.0%  
+Benchmark___1KB_mux___1K_chunks__10KB-2	     200	  38383294 ns/op	   0.05 MB/s
+--- Histogram (unit: ms)
+	Count: 200  Min: 1  Max: 81  Avg: 37.88
+	------------------------------------------------------------
+	[  1,   2)    1    0.5%    0.5%  
+	[  2,   3)   10    5.0%    5.5%  #
+	[  3,   4)    4    2.0%    7.5%  
+	[  4,   6)    3    1.5%    9.0%  
+	[  6,   9)    9    4.5%   13.5%  
+	[  9,  13)    3    1.5%   15.0%  
+	[ 13,  18)   12    6.0%   21.0%  #
+	[ 18,  25)    7    3.5%   24.5%  
+	[ 25,  35)   37   18.5%   43.0%  ##
+	[ 35,  48)   46   23.0%   66.0%  ##
+	[ 48,  66)   48   24.0%   90.0%  ##
+	[ 66,  90)   20   10.0%  100.0%  #
+	[ 90, 123)    0    0.0%  100.0%  
+	[123, 167)    0    0.0%  100.0%  
+	[167, 226)    0    0.0%  100.0%  
+	[226, 305)    0    0.0%  100.0%  
+	[305, inf)    0    0.0%  100.0%  
diff --git a/runtimes/google/ipc/stream/crypto/tls.go b/runtimes/google/ipc/stream/crypto/tls.go
index da35acc..fafa18c 100644
--- a/runtimes/google/ipc/stream/crypto/tls.go
+++ b/runtimes/google/ipc/stream/crypto/tls.go
@@ -166,6 +166,7 @@
 }
 
 func (c *tlsCrypter) Decrypt(ciphertext *iobuf.Slice) (*iobuf.Slice, error) {
+	defer ciphertext.Release()
 	if ciphertext.Size() == 0 {
 		return ciphertext, nil
 	}
diff --git a/runtimes/google/ipc/stream/manager/manager.go b/runtimes/google/ipc/stream/manager/manager.go
index f76a522..7b2b05c 100644
--- a/runtimes/google/ipc/stream/manager/manager.go
+++ b/runtimes/google/ipc/stream/manager/manager.go
@@ -138,6 +138,7 @@
 		if !retry || verror.ErrorID(err) != verror.Aborted {
 			return vc, err
 		}
+		vf.Close()
 		m.vifs.Delete(vf)
 		vlog.VI(2).Infof("VIF %v is closed, removing from cache", vf)
 	}
diff --git a/runtimes/google/ipc/stream/proxy/proxy.go b/runtimes/google/ipc/stream/proxy/proxy.go
index a498b4b..2b79f97 100644
--- a/runtimes/google/ipc/stream/proxy/proxy.go
+++ b/runtimes/google/ipc/stream/proxy/proxy.go
@@ -46,15 +46,18 @@
 // process encapsulates the physical network connection and the routing table
 // associated with the process at the other end of the network connection.
 type process struct {
-	Conn         net.Conn
+	proxy        *Proxy
+	conn         net.Conn
+	pool         *iobuf.Pool
+	reader       *iobuf.Reader
 	isSetup      bool
 	ctrlCipher   crypto.ControlCipher
-	Queue        *upcqueue.T
+	queue        *upcqueue.T
 	mu           sync.RWMutex
 	routingTable map[id.VC]*destination
 	nextVCI      id.VC
 	servers      map[id.VC]*vc.VC // servers wishing to be proxied create a VC that terminates at the proxy
-	BQ           bqueue.T         // Flow control for messages sent on behalf of servers.
+	bq           bqueue.T         // Flow control for messages sent on behalf of servers.
 }
 
 // destination is an entry in the routingtable of a process.
@@ -70,6 +73,7 @@
 }
 
 func (s *server) RoutingID() naming.RoutingID { return s.VC.RemoteAddr().RoutingID() }
+
 func (s *server) Close(err error) {
 	if vc := s.Process.RemoveServerVC(s.VC.VCI()); vc != nil {
 		if err != nil {
@@ -80,6 +84,7 @@
 		s.Process.SendCloseVC(s.VC.VCI(), err)
 	}
 }
+
 func (s *server) String() string {
 	return fmt.Sprintf("RoutingID %v on process %v (VCI:%v Blessings:%v)", s.RoutingID(), s.Process, s.VC.VCI(), s.VC.RemoteBlessings())
 }
@@ -102,6 +107,7 @@
 	proxyLog().Infof("Started proxying server: %v", server)
 	return nil
 }
+
 func (m *servermap) Remove(server *server) {
 	key := server.RoutingID()
 	m.mu.Lock()
@@ -111,6 +117,7 @@
 	}
 	m.mu.Unlock()
 }
+
 func (m *servermap) Process(rid naming.RoutingID) *process {
 	m.mu.Lock()
 	defer m.mu.Unlock()
@@ -119,6 +126,7 @@
 	}
 	return nil
 }
+
 func (m *servermap) List() []string {
 	m.mu.Lock()
 	defer m.mu.Unlock()
@@ -168,220 +176,36 @@
 }
 
 func (p *Proxy) acceptProcess(conn net.Conn) {
+	pool := iobuf.NewPool(0)
 	process := &process{
-		Conn:         conn,
+		proxy:        p,
+		conn:         conn,
+		pool:         pool,
+		reader:       iobuf.NewReader(pool, conn),
 		ctrlCipher:   &crypto.NullControlCipher{},
-		Queue:        upcqueue.New(),
+		queue:        upcqueue.New(),
 		routingTable: make(map[id.VC]*destination),
 		servers:      make(map[id.VC]*vc.VC),
-		BQ:           drrqueue.New(vc.MaxPayloadSizeBytes),
+		bq:           drrqueue.New(vc.MaxPayloadSizeBytes),
 	}
-	go writeLoop(process)
-	go serverVCsLoop(process)
-	go p.readLoop(process)
-}
 
-func writeLoop(process *process) {
-	defer processLog().Infof("Exited writeLoop for %v", process)
-	defer process.Close()
-	for {
-		item, err := process.Queue.Get(nil)
-		if err != nil {
-			if err != upcqueue.ErrQueueIsClosed {
-				processLog().Infof("upcqueue.Get failed on %v: %v", process, err)
-			}
-			return
-		}
-		if err = message.WriteTo(process.Conn, item.(message.T), process.ctrlCipher); err != nil {
-			processLog().Infof("message.WriteTo on %v failed: %v", process, err)
-			return
-		}
-	}
-}
-func serverVCsLoop(process *process) {
-	for {
-		w, bufs, err := process.BQ.Get(nil)
-		if err != nil {
-			return
-		}
-		vci, fid := unpackIDs(w.ID())
-		if vc := process.ServerVC(vci); vc != nil {
-			queueDataMessages(bufs, vc, fid, process.Queue)
-			if len(bufs) == 0 {
-				m := &message.Data{VCI: vci, Flow: fid}
-				m.SetClose()
-				process.Queue.Put(m)
-				w.Shutdown(true)
-			}
-			continue
-		}
-		releaseBufs(0, bufs)
-	}
-}
-func releaseBufs(start int, bufs []*iobuf.Slice) {
-	for i := start; i < len(bufs); i++ {
-		bufs[i].Release()
-	}
-}
-func queueDataMessages(bufs []*iobuf.Slice, vc *vc.VC, fid id.Flow, q *upcqueue.T) {
-	for ix, b := range bufs {
-		m := &message.Data{VCI: vc.VCI(), Flow: fid}
-		var err error
-		if m.Payload, err = vc.Encrypt(fid, b); err != nil {
-			msgLog().Infof("vc.Encrypt failed. VC:%v Flow:%v Error:%v", vc, fid, err)
-			releaseBufs(ix+1, bufs)
-			return
-		}
-		if err = q.Put(m); err != nil {
-			msgLog().Infof("Failed to enqueue data message %v: %v", m, err)
-			m.Release()
-			releaseBufs(ix+1, bufs)
-			return
-		}
-	}
-}
-func (p *Proxy) startProcess(process *process) {
 	p.mu.Lock()
 	p.processes[process] = struct{}{}
 	p.mu.Unlock()
+
+	go process.serverVCsLoop()
+	go process.writeLoop()
+	go process.readLoop()
+
 	processLog().Infof("Started process %v", process)
 }
-func (p *Proxy) stopProcess(process *process) {
-	process.Close()
+
+func (p *Proxy) removeProcess(process *process) {
 	p.mu.Lock()
 	delete(p.processes, process)
 	p.mu.Unlock()
-	processLog().Infof("Stopped process %v", process)
 }
-func (p *Proxy) readLoop(process *process) {
-	p.startProcess(process)
-	defer p.stopProcess(process)
-	reader := iobuf.NewReader(iobuf.NewPool(0), process.Conn)
-	defer reader.Close()
-	for {
-		msg, err := message.ReadFrom(reader, process.ctrlCipher)
-		if err != nil {
-			processLog().Infof("Read on %v failed: %v", process, err)
-			return
-		}
-		msgLog().Infof("Received msg: %T = %v", msg, msg)
-		switch m := msg.(type) {
-		case *message.Data:
-			if vc := process.ServerVC(m.VCI); vc != nil {
-				if err := vc.DispatchPayload(m.Flow, m.Payload); err != nil {
-					processLog().Infof("Ignoring data message %v from process %v: %v", m, process, err)
-				}
-				if m.Close() {
-					vc.ShutdownFlow(m.Flow)
-				}
-				break
-			}
-			srcVCI := m.VCI
-			if d := process.Route(srcVCI); d != nil {
-				m.VCI = d.VCI
-				if err := d.Process.Queue.Put(m); err != nil {
-					process.RemoveRoute(srcVCI)
-					process.SendCloseVC(srcVCI, fmt.Errorf("proxy failed to forward data message: %v", err))
-				}
-				break
-			}
-			process.SendCloseVC(srcVCI, errNoRoutingTableEntry)
-		case *message.OpenFlow:
-			if vc := process.ServerVC(m.VCI); vc != nil {
-				if err := vc.AcceptFlow(m.Flow); err != nil {
-					processLog().Infof("OpenFlow %+v on process %v failed: %v", m, process, err)
-					cm := &message.Data{VCI: m.VCI, Flow: m.Flow}
-					cm.SetClose()
-					process.Queue.Put(cm)
-				}
-				vc.ReleaseCounters(m.Flow, m.InitialCounters)
-				break
-			}
-			srcVCI := m.VCI
-			if d := process.Route(srcVCI); d != nil {
-				m.VCI = d.VCI
-				if err := d.Process.Queue.Put(m); err != nil {
-					process.RemoveRoute(srcVCI)
-					process.SendCloseVC(srcVCI, fmt.Errorf("proxy failed to forward open flow message: %v", err))
-				}
-				break
-			}
-			process.SendCloseVC(srcVCI, errNoRoutingTableEntry)
-		case *message.CloseVC:
-			if vc := process.RemoveServerVC(m.VCI); vc != nil {
-				vc.Close(m.Error)
-				break
-			}
-			srcVCI := m.VCI
-			if d := process.Route(srcVCI); d != nil {
-				m.VCI = d.VCI
-				d.Process.Queue.Put(m)
-				d.Process.RemoveRoute(d.VCI)
-			}
-			process.RemoveRoute(srcVCI)
-		case *message.AddReceiveBuffers:
-			p.routeCounters(process, m.Counters)
-		case *message.OpenVC:
-			dstrid := m.DstEndpoint.RoutingID()
-			if naming.Compare(dstrid, p.rid) || naming.Compare(dstrid, naming.NullRoutingID) {
-				// VC that terminates at the proxy.
-				// See protocol.vdl for details on the protocol between the server and the proxy.
-				vcObj := process.NewServerVC(m)
-				// route counters after creating the VC so counters to vc are not lost.
-				p.routeCounters(process, m.Counters)
-				if vcObj != nil {
-					server := &server{Process: process, VC: vcObj}
-					go p.runServer(server, vcObj.HandshakeAcceptedVC(vc.LocalPrincipal{p.principal}))
-				}
-				break
-			}
-			dstprocess := p.servers.Process(dstrid)
-			if dstprocess == nil {
-				process.SendCloseVC(m.VCI, fmt.Errorf("no server with routing id %v is being proxied", dstrid))
-				p.routeCounters(process, m.Counters)
-				break
-			}
-			srcVCI := m.VCI
-			dstVCI := dstprocess.AllocVCI()
-			startRoutingVC(srcVCI, dstVCI, process, dstprocess)
-			// Forward the OpenVC message.
-			// Typically, an OpenVC message is accompanied with Counters for the new VC.
-			// Keep that in the forwarded message and route the remaining counters separately.
-			counters := m.Counters
-			m.Counters = message.NewCounters()
-			for cid, bytes := range counters {
-				if cid.VCI() == srcVCI {
-					m.Counters.Add(dstVCI, cid.Flow(), bytes)
-					delete(counters, cid)
-				}
-			}
-			m.VCI = dstVCI
-			dstprocess.Queue.Put(m)
-			p.routeCounters(process, counters)
-		case *message.HopSetup:
-			// Set up the hop.  This takes over the process during negotiation.
-			if process.isSetup {
-				// Already performed authentication.  We don't do it again.
-				processLog().Infof("Process %v is already setup", process)
-				return
-			}
-			var blessings security.Blessings
-			if p.principal != nil {
-				blessings = p.principal.BlessingStore().Default()
-			}
-			c, err := vif.AuthenticateAsServer(process.Conn, nil, p.principal, blessings, nil, m)
-			if err != nil {
-				processLog().Infof("Process %v failed to authenticate: %s", process, err)
-				return
-			}
-			process.ctrlCipher = c
-			process.isSetup = true
-		default:
-			processLog().Infof("Closing %v because of unrecognized message %T", process, m)
-			return
-		}
-	}
-}
+
 func (p *Proxy) runServer(server *server, c <-chan vc.HandshakeResult) {
 	hr := <-c
 	if hr.Error != nil {
@@ -439,6 +263,7 @@
 	// Wait for this flow to be closed.
 	<-conn.Closed()
 }
+
 func (p *Proxy) routeCounters(process *process, counters message.Counters) {
 	// Since each VC can be routed to a different process, split up the
 	// Counters into one message per VC.
@@ -453,13 +278,14 @@
 		if d := process.Route(srcVCI); d != nil {
 			c := message.NewCounters()
 			c.Add(d.VCI, cid.Flow(), bytes)
-			if err := d.Process.Queue.Put(&message.AddReceiveBuffers{Counters: c}); err != nil {
+			if err := d.Process.queue.Put(&message.AddReceiveBuffers{Counters: c}); err != nil {
 				process.RemoveRoute(srcVCI)
 				process.SendCloseVC(srcVCI, fmt.Errorf("proxy failed to forward receive buffers: %v", err))
 			}
 		}
 	}
 }
+
 func startRoutingVC(srcVCI, dstVCI id.VC, srcProcess, dstProcess *process) {
 	dstProcess.AddRoute(dstVCI, &destination{VCI: srcVCI, Process: srcProcess})
 	srcProcess.AddRoute(srcVCI, &destination{VCI: dstVCI, Process: dstProcess})
@@ -477,13 +303,210 @@
 func (p *Proxy) Shutdown() {
 	p.ln.Close()
 	p.mu.Lock()
-	defer p.mu.Unlock()
-	for process, _ := range p.processes {
+	processes := p.processes
+	p.processes = nil
+	p.mu.Unlock()
+	for process, _ := range processes {
 		process.Close()
 	}
 }
+
+func (p *process) serverVCsLoop() {
+	for {
+		w, bufs, err := p.bq.Get(nil)
+		if err != nil {
+			return
+		}
+		vci, fid := unpackIDs(w.ID())
+		if vc := p.ServerVC(vci); vc != nil {
+			queueDataMessages(bufs, vc, fid, p.queue)
+			if len(bufs) == 0 {
+				m := &message.Data{VCI: vci, Flow: fid}
+				m.SetClose()
+				p.queue.Put(m)
+				w.Shutdown(true)
+			}
+			continue
+		}
+		releaseBufs(0, bufs)
+	}
+}
+
+func releaseBufs(start int, bufs []*iobuf.Slice) {
+	for _, buf := range bufs[start:] {
+		buf.Release()
+	}
+}
+
+func queueDataMessages(bufs []*iobuf.Slice, vc *vc.VC, fid id.Flow, q *upcqueue.T) {
+	for ix, b := range bufs {
+		m := &message.Data{VCI: vc.VCI(), Flow: fid}
+		var err error
+		if m.Payload, err = vc.Encrypt(fid, b); err != nil {
+			msgLog().Infof("vc.Encrypt failed. VC:%v Flow:%v Error:%v", vc, fid, err)
+			releaseBufs(ix+1, bufs)
+			return
+		}
+		if err = q.Put(m); err != nil {
+			msgLog().Infof("Failed to enqueue data message %v: %v", m, err)
+			m.Release()
+			releaseBufs(ix+1, bufs)
+			return
+		}
+	}
+}
+
+func (p *process) writeLoop() {
+	defer processLog().Infof("Exited writeLoop for %v", p)
+	defer p.Close()
+
+	for {
+		item, err := p.queue.Get(nil)
+		if err != nil {
+			if err != upcqueue.ErrQueueIsClosed {
+				processLog().Infof("upcqueue.Get failed on %v: %v", p, err)
+			}
+			return
+		}
+		if err = message.WriteTo(p.conn, item.(message.T), p.ctrlCipher); err != nil {
+			processLog().Infof("message.WriteTo on %v failed: %v", p, err)
+			return
+		}
+	}
+}
+
+func (p *process) readLoop() {
+	defer processLog().Infof("Exited readLoop for %v", p)
+	defer p.Close()
+
+	for {
+		msg, err := message.ReadFrom(p.reader, p.ctrlCipher)
+		if err != nil {
+			processLog().Infof("Read on %v failed: %v", p, err)
+			return
+		}
+		msgLog().Infof("Received msg: %T = %v", msg, msg)
+		switch m := msg.(type) {
+		case *message.Data:
+			if vc := p.ServerVC(m.VCI); vc != nil {
+				if err := vc.DispatchPayload(m.Flow, m.Payload); err != nil {
+					processLog().Infof("Ignoring data message %v from process %v: %v", m, p, err)
+				}
+				if m.Close() {
+					vc.ShutdownFlow(m.Flow)
+				}
+				break
+			}
+			srcVCI := m.VCI
+			if d := p.Route(srcVCI); d != nil {
+				m.VCI = d.VCI
+				if err := d.Process.queue.Put(m); err != nil {
+					m.Release()
+					p.RemoveRoute(srcVCI)
+					p.SendCloseVC(srcVCI, fmt.Errorf("proxy failed to forward data message: %v", err))
+				}
+				break
+			}
+			p.SendCloseVC(srcVCI, errNoRoutingTableEntry)
+		case *message.OpenFlow:
+			if vc := p.ServerVC(m.VCI); vc != nil {
+				if err := vc.AcceptFlow(m.Flow); err != nil {
+					processLog().Infof("OpenFlow %+v on process %v failed: %v", m, p, err)
+					cm := &message.Data{VCI: m.VCI, Flow: m.Flow}
+					cm.SetClose()
+					p.queue.Put(cm)
+				}
+				vc.ReleaseCounters(m.Flow, m.InitialCounters)
+				break
+			}
+			srcVCI := m.VCI
+			if d := p.Route(srcVCI); d != nil {
+				m.VCI = d.VCI
+				if err := d.Process.queue.Put(m); err != nil {
+					p.RemoveRoute(srcVCI)
+					p.SendCloseVC(srcVCI, fmt.Errorf("proxy failed to forward open flow message: %v", err))
+				}
+				break
+			}
+			p.SendCloseVC(srcVCI, errNoRoutingTableEntry)
+		case *message.CloseVC:
+			if vc := p.RemoveServerVC(m.VCI); vc != nil {
+				vc.Close(m.Error)
+				break
+			}
+			srcVCI := m.VCI
+			if d := p.Route(srcVCI); d != nil {
+				m.VCI = d.VCI
+				d.Process.queue.Put(m)
+				d.Process.RemoveRoute(d.VCI)
+			}
+			p.RemoveRoute(srcVCI)
+		case *message.AddReceiveBuffers:
+			p.proxy.routeCounters(p, m.Counters)
+		case *message.OpenVC:
+			dstrid := m.DstEndpoint.RoutingID()
+			if naming.Compare(dstrid, p.proxy.rid) || naming.Compare(dstrid, naming.NullRoutingID) {
+				// VC that terminates at the proxy.
+				// See protocol.vdl for details on the protocol between the server and the proxy.
+				vcObj := p.NewServerVC(m)
+				// route counters after creating the VC so counters to vc are not lost.
+				p.proxy.routeCounters(p, m.Counters)
+				if vcObj != nil {
+					server := &server{Process: p, VC: vcObj}
+					go p.proxy.runServer(server, vcObj.HandshakeAcceptedVC(vc.LocalPrincipal{p.proxy.principal}))
+				}
+				break
+			}
+			dstprocess := p.proxy.servers.Process(dstrid)
+			if dstprocess == nil {
+				p.SendCloseVC(m.VCI, fmt.Errorf("no server with routing id %v is being proxied", dstrid))
+				p.proxy.routeCounters(p, m.Counters)
+				break
+			}
+			srcVCI := m.VCI
+			dstVCI := dstprocess.AllocVCI()
+			startRoutingVC(srcVCI, dstVCI, p, dstprocess)
+			// Forward the OpenVC message.
+			// Typically, an OpenVC message is accompanied with Counters for the new VC.
+			// Keep that in the forwarded message and route the remaining counters separately.
+			counters := m.Counters
+			m.Counters = message.NewCounters()
+			for cid, bytes := range counters {
+				if cid.VCI() == srcVCI {
+					m.Counters.Add(dstVCI, cid.Flow(), bytes)
+					delete(counters, cid)
+				}
+			}
+			m.VCI = dstVCI
+			dstprocess.queue.Put(m)
+			p.proxy.routeCounters(p, counters)
+		case *message.HopSetup:
+			// Set up the hop.  This takes over the process during negotiation.
+			if p.isSetup {
+				// Already performed authentication.  We don't do it again.
+				processLog().Infof("Process %v is already setup", p)
+				return
+			}
+			var blessings security.Blessings
+			if p.proxy.principal != nil {
+				blessings = p.proxy.principal.BlessingStore().Default()
+			}
+			c, err := vif.AuthenticateAsServer(p.conn, p.reader, nil, p.proxy.principal, blessings, nil, m)
+			if err != nil {
+				processLog().Infof("Process %v failed to authenticate: %s", p, err)
+				return
+			}
+			p.ctrlCipher = c
+			p.isSetup = true
+		default:
+			processLog().Infof("Closing %v because of unrecognized message %T", p, m)
+			return
+		}
+	}
+}
+
 func (p *process) String() string {
-	r := p.Conn.RemoteAddr()
+	r := p.conn.RemoteAddr()
 	return fmt.Sprintf("(%s, %s)", r.Network(), r)
 }
 func (p *process) Route(vci id.VC) *destination {
@@ -520,10 +543,15 @@
 	if err != nil {
 		estr = err.Error()
 	}
-	p.Queue.Put(&message.CloseVC{VCI: vci, Error: estr})
+	p.queue.Put(&message.CloseVC{VCI: vci, Error: estr})
 }
+
 func (p *process) Close() {
 	p.mu.Lock()
+	if p.routingTable == nil {
+		p.mu.Unlock()
+		return
+	}
 	rt := p.routingTable
 	p.routingTable = nil
 	for _, vc := range p.servers {
@@ -533,15 +561,19 @@
 	for _, d := range rt {
 		d.Process.SendCloseVC(d.VCI, errProcessVanished)
 	}
-	p.BQ.Close()
-	p.Queue.Close()
-	p.Conn.Close()
+	p.bq.Close()
+	p.queue.Close()
+	p.conn.Close()
+
+	p.proxy.removeProcess(p)
 }
+
 func (p *process) ServerVC(vci id.VC) *vc.VC {
 	p.mu.Lock()
 	defer p.mu.Unlock()
 	return p.servers[vci]
 }
+
 func (p *process) NewServerVC(m *message.OpenVC) *vc.VC {
 	p.mu.Lock()
 	defer p.mu.Unlock()
@@ -558,7 +590,7 @@
 		VCI:          m.VCI,
 		LocalEP:      m.DstEndpoint,
 		RemoteEP:     m.SrcEndpoint,
-		Pool:         iobuf.NewPool(0),
+		Pool:         p.pool,
 		ReserveBytes: message.HeaderSizeBytes,
 		Helper:       p,
 		Version:      version,
@@ -567,6 +599,7 @@
 	proxyLog().Infof("Registered VC %v from server on process %v", vc, p)
 	return vc
 }
+
 func (p *process) RemoveServerVC(vci id.VC) *vc.VC {
 	p.mu.Lock()
 	defer p.mu.Unlock()
@@ -581,22 +614,24 @@
 // Make process implement vc.Helper
 func (p *process) NotifyOfNewFlow(vci id.VC, fid id.Flow, bytes uint) {
 	msg := &message.OpenFlow{VCI: vci, Flow: fid, InitialCounters: uint32(bytes)}
-	if err := p.Queue.Put(msg); err != nil {
+	if err := p.queue.Put(msg); err != nil {
 		processLog().Infof("Failed to send OpenFlow(%+v) on process %v: %v", msg, p, err)
 	}
 }
+
 func (p *process) AddReceiveBuffers(vci id.VC, fid id.Flow, bytes uint) {
 	if bytes == 0 {
 		return
 	}
 	msg := &message.AddReceiveBuffers{Counters: message.NewCounters()}
 	msg.Counters.Add(vci, fid, uint32(bytes))
-	if err := p.Queue.Put(msg); err != nil {
+	if err := p.queue.Put(msg); err != nil {
 		processLog().Infof("Failed to send AddReceiveBuffers(%+v) on process %v: %v", msg, p, err)
 	}
 }
+
 func (p *process) NewWriter(vci id.VC, fid id.Flow) (bqueue.Writer, error) {
-	return p.BQ.NewWriter(packIDs(vci, fid), 0, vc.DefaultBytesBufferedPerFlow)
+	return p.bq.NewWriter(packIDs(vci, fid), 0, vc.DefaultBytesBufferedPerFlow)
 }
 
 // Convenience functions to assist with the logging convention.
diff --git a/runtimes/google/ipc/stream/vc/vc.go b/runtimes/google/ipc/stream/vc/vc.go
index d273830..d690fef 100644
--- a/runtimes/google/ipc/stream/vc/vc.go
+++ b/runtimes/google/ipc/stream/vc/vc.go
@@ -101,7 +101,7 @@
 	LocalEP      naming.Endpoint // Endpoint of the local end of the VC.
 	RemoteEP     naming.Endpoint // Endpoint of the remote end of the VC.
 	Pool         *iobuf.Pool     // Byte pool used for read and write buffer allocations.
-	ReserveBytes uint            // Number of bytes to reserve in iobuf.Slices.
+	ReserveBytes uint            // Number of padding bytes to reserve for headers.
 	Helper       Helper
 	Version      version.IPCVersion
 }
@@ -345,8 +345,8 @@
 	vc.flowMap = nil
 	if vc.listener != nil {
 		vc.listener.Close()
+		vc.listener = nil
 	}
-	vc.listener = nil
 	vc.closeReason = reason
 	vc.mu.Unlock()
 
diff --git a/runtimes/google/ipc/stream/vif/auth.go b/runtimes/google/ipc/stream/vif/auth.go
index db659c2..312c3a6 100644
--- a/runtimes/google/ipc/stream/vif/auth.go
+++ b/runtimes/google/ipc/stream/vif/auth.go
@@ -5,7 +5,6 @@
 	"errors"
 	"fmt"
 	"io"
-	"net"
 
 	"golang.org/x/crypto/nacl/box"
 
@@ -61,7 +60,7 @@
 // including a hash of the HopSetup message in the encrypted stream.  It is
 // likely that this will be addressed in subsequent protocol versions (or it may
 // not be addressed at all if IPCVersion6 becomes the only supported version).
-func AuthenticateAsClient(ctx *context.T, conn net.Conn, versions *version.Range, principal security.Principal, dc vc.DischargeClient) (crypto.ControlCipher, error) {
+func AuthenticateAsClient(ctx *context.T, writer io.Writer, reader *iobuf.Reader, versions *version.Range, principal security.Principal, dc vc.DischargeClient) (crypto.ControlCipher, error) {
 	if versions == nil {
 		versions = version.SupportedRange
 	}
@@ -82,13 +81,11 @@
 	if err != nil {
 		return nil, err
 	}
-	if err := message.WriteTo(conn, &pub, nullCipher); err != nil {
+	if err := message.WriteTo(writer, &pub, nullCipher); err != nil {
 		return nil, err
 	}
 
 	// Read the server's public data.
-	pool := iobuf.NewPool(0)
-	reader := iobuf.NewReader(pool, conn)
 	pmsg, err := message.ReadFrom(reader, nullCipher)
 	if err != nil {
 		return nil, err
@@ -111,7 +108,7 @@
 	// Perform the authentication.
 	switch v {
 	case ipcversion.IPCVersion6:
-		return authenticateAsClientIPC6(ctx, conn, reader, principal, dc, &pvt, &pub, ppub)
+		return authenticateAsClientIPC6(ctx, writer, reader, principal, dc, &pvt, &pub, ppub)
 	default:
 		return nil, errUnsupportedEncryptVersion
 	}
@@ -137,7 +134,7 @@
 // based on the max common version.
 //
 // See AuthenticateAsClient for a description of the negotiation.
-func AuthenticateAsServer(conn net.Conn, versions *version.Range, principal security.Principal, lBlessings security.Blessings,
+func AuthenticateAsServer(writer io.Writer, reader *iobuf.Reader, versions *version.Range, principal security.Principal, lBlessings security.Blessings,
 	dc vc.DischargeClient, ppub *message.HopSetup) (crypto.ControlCipher, error) {
 	var err error
 	if versions == nil {
@@ -156,7 +153,7 @@
 	if err != nil {
 		return nil, err
 	}
-	if err := message.WriteTo(conn, &pub, nullCipher); err != nil {
+	if err := message.WriteTo(writer, &pub, nullCipher); err != nil {
 		return nil, err
 	}
 
@@ -173,22 +170,20 @@
 	// Perform authentication.
 	switch v {
 	case ipcversion.IPCVersion6:
-		return authenticateAsServerIPC6(conn, principal, lBlessings, dc, &pvt, &pub, ppub)
+		return authenticateAsServerIPC6(writer, reader, principal, lBlessings, dc, &pvt, &pub, ppub)
 	default:
 		return nil, errUnsupportedEncryptVersion
 	}
 }
 
-func authenticateAsServerIPC6(conn net.Conn, principal security.Principal, lBlessings security.Blessings, dc vc.DischargeClient,
+func authenticateAsServerIPC6(writer io.Writer, reader *iobuf.Reader, principal security.Principal, lBlessings security.Blessings, dc vc.DischargeClient,
 	pvt *privateData, pub, ppub *message.HopSetup) (crypto.ControlCipher, error) {
 	box := ppub.NaclBox()
 	if box == nil {
 		return nil, errVersionNegotiationFailed
 	}
 	c := crypto.NewControlCipherIPC6(&box.PublicKey, &pvt.naclBoxPrivateKey, true)
-	pool := iobuf.NewPool(0)
-	reader := iobuf.NewReader(pool, conn)
-	sconn := newSetupConn(conn, reader, c)
+	sconn := newSetupConn(writer, reader, c)
 	// TODO(jyh): act upon authentication results.
 	_, _, err := vc.AuthenticateAsServer(sconn, principal, lBlessings, dc, crypto.NewNullCrypter(), ipcversion.IPCVersion6)
 	if err != nil {
diff --git a/runtimes/google/ipc/stream/vif/vif.go b/runtimes/google/ipc/stream/vif/vif.go
index 3b51d61..1e5294e 100644
--- a/runtimes/google/ipc/stream/vif/vif.go
+++ b/runtimes/google/ipc/stream/vif/vif.go
@@ -37,8 +37,10 @@
 // single physical interface, multiple Virtual Circuits (VCs) can be
 // established over a single VIF.
 type VIF struct {
+	// All reads must be performed through reader, and not directly through conn.
 	conn    net.Conn
 	pool    *iobuf.Pool
+	reader  *iobuf.Reader
 	localEP naming.Endpoint
 
 	// control channel encryption.
@@ -72,6 +74,9 @@
 	// actually supported by this IPC implementation (which is always
 	// what you want outside of tests).
 	versions *version.Range
+
+	isClosedMu sync.Mutex
+	isClosed   bool // GUARDED_BY(isClosedMu)
 }
 
 // ConnectorAndFlow represents a Flow and the Connector that can be used to
@@ -118,11 +123,13 @@
 		span.Annotatef("(%v, %v)", conn.RemoteAddr().Network(), conn.RemoteAddr())
 		defer span.Finish()
 	}
-	c, err := AuthenticateAsClient(ctx, conn, versions, principal, dc)
+	pool := iobuf.NewPool(0)
+	reader := iobuf.NewReader(pool, conn)
+	c, err := AuthenticateAsClient(ctx, conn, reader, versions, principal, dc)
 	if err != nil {
 		return nil, err
 	}
-	return internalNew(conn, rid, id.VC(vc.NumReservedVCs), versions, nil, nil, c)
+	return internalNew(conn, pool, reader, rid, id.VC(vc.NumReservedVCs), versions, nil, nil, c)
 }
 
 // InternalNewAcceptedVIF creates a new virtual interface over the provided
@@ -136,11 +143,12 @@
 // placed inside veyron/runtimes/google. Code outside the
 // veyron/runtimes/google/* packages should never call this method.
 func InternalNewAcceptedVIF(conn net.Conn, rid naming.RoutingID, versions *version.Range, lopts ...stream.ListenerOpt) (*VIF, error) {
-	var nc crypto.NullControlCipher
-	return internalNew(conn, rid, id.VC(vc.NumReservedVCs)+1, versions, upcqueue.New(), lopts, &nc)
+	pool := iobuf.NewPool(0)
+	reader := iobuf.NewReader(pool, conn)
+	return internalNew(conn, pool, reader, rid, id.VC(vc.NumReservedVCs)+1, versions, upcqueue.New(), lopts, &crypto.NullControlCipher{})
 }
 
-func internalNew(conn net.Conn, rid naming.RoutingID, initialVCI id.VC, versions *version.Range, acceptor *upcqueue.T, listenerOpts []stream.ListenerOpt, c crypto.ControlCipher) (*VIF, error) {
+func internalNew(conn net.Conn, pool *iobuf.Pool, reader *iobuf.Reader, rid naming.RoutingID, initialVCI id.VC, versions *version.Range, acceptor *upcqueue.T, listenerOpts []stream.ListenerOpt, c crypto.ControlCipher) (*VIF, error) {
 	// Some cloud providers (like Google Compute Engine) seem to blackhole
 	// inactive TCP connections, set a TCP keep alive to prevent that.
 	// See: https://developers.google.com/compute/docs/troubleshooting#communicatewithinternet
@@ -187,7 +195,8 @@
 	}
 	vif := &VIF{
 		conn:         conn,
-		pool:         iobuf.NewPool(0),
+		pool:         pool,
+		reader:       reader,
 		ctrlCipher:   c,
 		vcMap:        newVCMap(),
 		acceptor:     acceptor,
@@ -238,6 +247,14 @@
 // underlying network connection after draining all pending writes on those
 // VCs.
 func (vif *VIF) Close() {
+	vif.isClosedMu.Lock()
+	if vif.isClosed {
+		vif.isClosedMu.Unlock()
+		return
+	}
+	vif.isClosed = true
+	vif.isClosedMu.Unlock()
+
 	vlog.VI(1).Infof("Closing VIF %s", vif)
 	// Stop accepting new VCs.
 	vif.StopAccepting()
@@ -323,14 +340,12 @@
 
 func (vif *VIF) readLoop() {
 	defer vif.Close()
-	reader := iobuf.NewReader(vif.pool, vif.conn)
-	defer reader.Close()
 	defer vif.stopVCDispatchLoops()
 	for {
 		// vif.ctrlCipher is guarded by vif.writeMu.  However, the only mutation
 		// to it is in handleMessage, which runs in the same goroutine, so a
 		// lock is not required here.
-		msg, err := message.ReadFrom(reader, vif.ctrlCipher)
+		msg, err := message.ReadFrom(vif.reader, vif.ctrlCipher)
 		if err != nil {
 			vlog.VI(1).Infof("Exiting readLoop of VIF %s because of read error: %v", vif, err)
 			return
@@ -420,7 +435,7 @@
 			return errVersionNegotiationFailed
 		}
 		vif.writeMu.Lock()
-		c, err := AuthenticateAsServer(vif.conn, vif.versions, principal, lBlessings, dischargeClient, m)
+		c, err := AuthenticateAsServer(vif.conn, vif.reader, vif.versions, principal, lBlessings, dischargeClient, m)
 		if err != nil {
 			vif.writeMu.Unlock()
 			return err
@@ -520,7 +535,7 @@
 		case vif.expressQ:
 			for _, b := range bufs {
 				if err := vif.writeSerializedMessage(b.Contents); err != nil {
-					vlog.Errorf("Exiting writeLoop of VIF %s because Control message write failed: %s", vif, err)
+					vlog.VI(1).Infof("Exiting writeLoop of VIF %s because Control message write failed: %s", vif, err)
 					releaseBufs(bufs)
 					return
 				}
@@ -792,6 +807,9 @@
 }
 
 // Methods and type that implement vc.Helper
+//
+// We create a separate type for vc.Helper to hide the vc.Helper methods
+// from the exported method set of VIF.
 type vcHelper struct{ vif *VIF }
 
 func (h vcHelper) NotifyOfNewFlow(vci id.VC, fid id.Flow, bytes uint) {
diff --git a/runtimes/google/ipc/stream/vif/vif_test.go b/runtimes/google/ipc/stream/vif/vif_test.go
index edffeba..0ba3a12 100644
--- a/runtimes/google/ipc/stream/vif/vif_test.go
+++ b/runtimes/google/ipc/stream/vif/vif_test.go
@@ -261,10 +261,12 @@
 	if n, err := serverFlow.Read(buf); n != 0 || err == nil {
 		t.Fatal("Got (%d, %v) = %q, want (0, nil)", n, err, buf[:n])
 	}
+	server.Close()
 }
 
 func TestShutdownVCs(t *testing.T) {
 	client, server := NewClientServer()
+	defer server.Close()
 	defer client.Close()
 
 	testN := func(N int) error {
diff --git a/runtimes/google/lib/iobuf/allocator.go b/runtimes/google/lib/iobuf/allocator.go
index 7c68de1..4483159 100644
--- a/runtimes/google/lib/iobuf/allocator.go
+++ b/runtimes/google/lib/iobuf/allocator.go
@@ -25,8 +25,7 @@
 // contiguous iobuf.  This can be used to reverse space for a header, for
 // example.
 func NewAllocator(pool *Pool, reserve uint) *Allocator {
-	iobuf := pool.alloc(reserve)
-	return &Allocator{pool: pool, reserve: reserve, index: reserve, iobuf: iobuf}
+	return &Allocator{pool: pool, reserve: reserve, index: reserve}
 }
 
 // Release releases the allocator.
@@ -34,15 +33,18 @@
 	if a.iobuf != nil {
 		a.iobuf.release()
 		a.iobuf = nil
-		a.pool = nil
 	}
+	a.pool = nil
 }
 
 // Alloc allocates a new Slice.
 func (a *Allocator) Alloc(bytes uint) *Slice {
 	if a.iobuf == nil {
-		vlog.Info("iobuf.Allocator has already been closed")
-		return nil
+		if a.pool == nil {
+			vlog.Info("iobuf.Allocator has already been closed")
+			return nil
+		}
+		a.iobuf = a.pool.alloc(a.reserve + bytes)
 	}
 	if uint(len(a.iobuf.Contents))-a.index < bytes {
 		a.allocIOBUF(bytes)
diff --git a/runtimes/google/lib/iobuf/iobuf.go b/runtimes/google/lib/iobuf/iobuf.go
index 2d55835..918ddba 100644
--- a/runtimes/google/lib/iobuf/iobuf.go
+++ b/runtimes/google/lib/iobuf/iobuf.go
@@ -59,7 +59,14 @@
 	allocated uint64 // Total number of iobufs allocated.
 }
 
+const defaultMinSize = 1 << 12
+
+// NewPool creates a new pool. The pool will allocate iobufs in multiples of minSize.
+// If minSize is zero, the default value (4K) will be used.
 func NewPool(minSize uint) *Pool {
+	if minSize == 0 {
+		minSize = defaultMinSize
+	}
 	return &Pool{minSize: minSize, freelist: []*buf{}}
 }
 
@@ -72,9 +79,12 @@
 
 // alloc allocates a new iobuf.  The returned iobuf has at least <size> bytes of free space.
 func (pool *Pool) alloc(size uint) *buf {
-	if size < pool.minSize {
+	if size == 0 {
 		size = pool.minSize
+	} else if r := size % pool.minSize; r > 0 {
+		size += pool.minSize - r
 	}
+
 	pool.mutex.Lock()
 	defer pool.mutex.Unlock()
 	if pool.freelist == nil {