diff --git a/runtimes/google/ipc/stream/benchmark/RESULTS.txt b/runtimes/google/ipc/stream/benchmark/RESULTS.txt
new file mode 100644
index 0000000..4fde7c1
--- /dev/null
+++ b/runtimes/google/ipc/stream/benchmark/RESULTS.txt
@@ -0,0 +1,100 @@
+Date: 10/12/2014
+Platform: Intel(R) Xeon(R) CPU E5-2689 0 @ 2.60GHz,  66114888KB Memory
+
+$ veyron go test -test.bench=throughput -test.cpu=1 -test.benchtime=5s \
+  veyron.io/veyron/veyron/runtimes/google/ipc/stream/benchmark
+
+Benchmark_throughput_TCP_1Conn   1000000              9844 ns/op        5201.13 MB/s
+Benchmark_throughput_TCP_2Conns  1000000              9551 ns/op        5360.43 MB/s
+Benchmark_throughput_TCP_4Conns  1000000              9864 ns/op        5190.41 MB/s
+Benchmark_throughput_TCP_8Conns  1000000             13138 ns/op        3897.01 MB/s
+Benchmark_throughput_Pipe_1Conn  1000000             22645 ns/op        2260.95 MB/s
+Benchmark_throughput_Pipe_2Conns          500000             21327 ns/op        2400.68 MB/s
+Benchmark_throughput_Pipe_4Conns          500000             24004 ns/op        2132.91 MB/s
+Benchmark_throughput_Pipe_8Conns          500000             21196 ns/op        2415.48 MB/s
+Benchmark_throughput_Flow_1VIF_1VC_1Flow          500000             28979 ns/op        1766.77 MB/s
+Benchmark_throughput_Flow_1VIF_1VC_2Flow          500000             30328 ns/op        1688.16 MB/s
+Benchmark_throughput_Flow_1VIF_1VC_8Flow          500000             37314 ns/op        1372.11 MB/s
+Benchmark_throughput_Flow_1VIF_2VC_2Flow          500000             30521 ns/op        1677.52 MB/s
+Benchmark_throughput_Flow_1VIF_2VC_8Flow          200000             38013 ns/op        1346.89 MB/s
+Benchmark_throughput_Flow_2VIF_4VC_8Flow          200000             39768 ns/op        1287.46 MB/s
+Benchmark_throughput_TLS_1Conn     20000            418920 ns/op         122.22 MB/s
+Benchmark_throughput_TLS_2Conns    20000            416965 ns/op         122.79 MB/s
+Benchmark_throughput_TLS_4Conns    20000            418513 ns/op         122.34 MB/s
+Benchmark_throughput_TLS_8Conns    20000            424970 ns/op         120.48 MB/s
+Benchmark_throughput_Flow_1VIF_1VC_1FlowTLS        20000            466126 ns/op         109.84 MB/s
+Benchmark_throughput_Flow_1VIF_1VC_2FlowTLS        20000            464239 ns/op         110.29 MB/s
+Benchmark_throughput_Flow_1VIF_1VC_8FlowTLS        20000            476913 ns/op         107.36 MB/s
+Benchmark_throughput_Flow_1VIF_2VC_2FlowTLS        20000            468779 ns/op         109.22 MB/s
+Benchmark_throughput_Flow_1VIF_2VC_8FlowTLS        20000            482487 ns/op         106.12 MB/s
+Benchmark_throughput_Flow_2VIF_4VC_8FlowTLS        20000            482328 ns/op         106.15 MB/s
+
+
+$ veyron go test -test.bench=dial -test.cpu=1 -test.benchtime=5s \
+  veyron.io/veyron/veyron/runtimes/google/ipc/stream/benchmark
+
+Benchmark_dial_VIF      1000000              9825 ns/op
+Histogram (unit: us)
+Count: 1000000  Min: 3  Max: 8034  Avg: 9.15
+------------------------------------------------------------
+[    3,     4)   404648   40.5%   40.5%  ####
+[    4,     5)   416958   41.7%   82.2%  ####
+[    5,     8)   124339   12.4%   94.6%  #
+[    8,    14)    30884    3.1%   97.7%  
+[   14,    24)    15604    1.6%   99.2%  
+[   24,    44)     3720    0.4%   99.6%  
+[   44,    80)     1132    0.1%   99.7%  
+[   80,   146)      304    0.0%   99.8%  
+[  146,   266)      183    0.0%   99.8%  
+[  266,   486)       75    0.0%   99.8%  
+[  486,   887)      160    0.0%   99.8%  
+[  887,  1617)      312    0.0%   99.8%  
+[ 1617,  2946)     1459    0.1%  100.0%  
+[ 2946,  5367)      221    0.0%  100.0%  
+[ 5367,  9777)        1    0.0%  100.0%  
+[ 9777, 17807)        0    0.0%  100.0%  
+[17807,   inf)        0    0.0%  100.0%  
+
+Benchmark_dial_VIF_TLS  1000          11816193 ns/op
+Histogram (unit: ms)
+Count: 1000  Min: 11  Max: 14  Avg: 11.25
+------------------------------------------------------------
+[ 11,  12)   766   76.6%   76.6%  ########
+[ 12,  13)   217   21.7%   98.3%  ##
+[ 13,  14)    15    1.5%   99.8%  
+[ 14,  15)     2    0.2%  100.0%  
+[ 15,  16)     0    0.0%  100.0%  
+[ 16,  17)     0    0.0%  100.0%  
+[ 17,  18)     0    0.0%  100.0%  
+[ 18,  19)     0    0.0%  100.0%  
+[ 19,  20)     0    0.0%  100.0%  
+[ 20,  21)     0    0.0%  100.0%  
+[ 21,  23)     0    0.0%  100.0%  
+[ 23,  25)     0    0.0%  100.0%  
+[ 25,  27)     0    0.0%  100.0%  
+[ 27,  29)     0    0.0%  100.0%  
+[ 29,  31)     0    0.0%  100.0%  
+[ 31,  33)     0    0.0%  100.0%  
+[ 33, inf)     0    0.0%  100.0%  
+
+Benchmark_dial_VC_TLS   500          15534331 ns/op
+Histogram (unit: ms)
+Count: 500  Min: 15  Max: 21  Avg: 15.26
+------------------------------------------------------------
+[ 15,  16)  402   80.4%   80.4%  ########
+[ 16,  17)   69   13.8%   94.2%  #
+[ 17,  18)   28    5.6%   99.8%  #
+[ 18,  19)    0    0.0%   99.8%  
+[ 19,  20)    0    0.0%   99.8%  
+[ 20,  21)    0    0.0%   99.8%  
+[ 21,  23)    1    0.2%  100.0%  
+[ 23,  25)    0    0.0%  100.0%  
+[ 25,  27)    0    0.0%  100.0%  
+[ 27,  29)    0    0.0%  100.0%  
+[ 29,  32)    0    0.0%  100.0%  
+[ 32,  35)    0    0.0%  100.0%  
+[ 35,  39)    0    0.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, inf)    0    0.0%  100.0%  
diff --git a/runtimes/google/ipc/stream/benchmark/dial_test.go b/runtimes/google/ipc/stream/benchmark/dial_test.go
index ee87feb..7b835ad 100644
--- a/runtimes/google/ipc/stream/benchmark/dial_test.go
+++ b/runtimes/google/ipc/stream/benchmark/dial_test.go
@@ -2,9 +2,9 @@
 
 import "testing"
 
-func BenchmarkVIF_Dial(b *testing.B)    { benchmarkVIFDial(b, securityNone) }
-func BenchmarkVIF_DialTLS(b *testing.B) { benchmarkVIFDial(b, securityTLS) }
+func Benchmark_dial_VIF(b *testing.B)     { benchmarkVIFDial(b, securityNone) }
+func Benchmark_dial_VIF_TLS(b *testing.B) { benchmarkVIFDial(b, securityTLS) }
 
 // Note: We don't benchmark Non-TLC VC Dial for now since it doesn't wait ack
 // from the server after sending "OpenVC".
-func BenchmarkVC_DialTLS(b *testing.B) { benchmarkVCDial(b, securityTLS) }
+func Benchmark_dial_VC_TLS(b *testing.B) { benchmarkVCDial(b, securityTLS) }
diff --git a/runtimes/google/ipc/stream/benchmark/dial_vc.go b/runtimes/google/ipc/stream/benchmark/dial_vc.go
index e0e397d..2995374 100644
--- a/runtimes/google/ipc/stream/benchmark/dial_vc.go
+++ b/runtimes/google/ipc/stream/benchmark/dial_vc.go
@@ -5,6 +5,7 @@
 	"testing"
 	"time"
 
+	_ "veyron.io/veyron/veyron/lib/tcp"
 	"veyron.io/veyron/veyron/lib/testutil"
 	"veyron.io/veyron/veyron/runtimes/google/ipc/stream/manager"
 
diff --git a/runtimes/google/ipc/stream/benchmark/throughput_flow.go b/runtimes/google/ipc/stream/benchmark/throughput_flow.go
index 321f313..902aa27 100644
--- a/runtimes/google/ipc/stream/benchmark/throughput_flow.go
+++ b/runtimes/google/ipc/stream/benchmark/throughput_flow.go
@@ -4,7 +4,9 @@
 	"io"
 	"testing"
 
+	_ "veyron.io/veyron/veyron/lib/tcp"
 	"veyron.io/veyron/veyron/runtimes/google/ipc/stream/manager"
+
 	"veyron.io/veyron/veyron2/ipc/stream"
 	"veyron.io/veyron/veyron2/naming"
 	"veyron.io/veyron/veyron2/options"
diff --git a/runtimes/google/ipc/stream/benchmark/throughput_test.go b/runtimes/google/ipc/stream/benchmark/throughput_test.go
index 30a1778..9487f0a 100644
--- a/runtimes/google/ipc/stream/benchmark/throughput_test.go
+++ b/runtimes/google/ipc/stream/benchmark/throughput_test.go
@@ -2,38 +2,38 @@
 
 import "testing"
 
-func BenchmarkTCP_1Conn(b *testing.B)  { benchmarkTCP(b, 1) }
-func BenchmarkTCP_2Conns(b *testing.B) { benchmarkTCP(b, 2) }
-func BenchmarkTCP_4Conns(b *testing.B) { benchmarkTCP(b, 4) }
-func BenchmarkTCP_8Conns(b *testing.B) { benchmarkTCP(b, 8) }
+func Benchmark_throughput_TCP_1Conn(b *testing.B)  { benchmarkTCP(b, 1) }
+func Benchmark_throughput_TCP_2Conns(b *testing.B) { benchmarkTCP(b, 2) }
+func Benchmark_throughput_TCP_4Conns(b *testing.B) { benchmarkTCP(b, 4) }
+func Benchmark_throughput_TCP_8Conns(b *testing.B) { benchmarkTCP(b, 8) }
 
-func BenchmarkPipe_1Conn(b *testing.B)  { benchmarkPipe(b, 1) }
-func BenchmarkPipe_2Conns(b *testing.B) { benchmarkPipe(b, 2) }
-func BenchmarkPipe_4Conns(b *testing.B) { benchmarkPipe(b, 4) }
-func BenchmarkPipe_8Conns(b *testing.B) { benchmarkPipe(b, 8) }
+func Benchmark_throughput_Pipe_1Conn(b *testing.B)  { benchmarkPipe(b, 1) }
+func Benchmark_throughput_Pipe_2Conns(b *testing.B) { benchmarkPipe(b, 2) }
+func Benchmark_throughput_Pipe_4Conns(b *testing.B) { benchmarkPipe(b, 4) }
+func Benchmark_throughput_Pipe_8Conns(b *testing.B) { benchmarkPipe(b, 8) }
 
-func BenchmarkFlow_1VIF_1VC_1Flow(b *testing.B) { benchmarkFlow(b, securityNone, 1, 1, 1) }
-func BenchmarkFlow_1VIF_1VC_2Flow(b *testing.B) { benchmarkFlow(b, securityNone, 1, 1, 2) }
-func BenchmarkFlow_1VIF_1VC_8Flow(b *testing.B) { benchmarkFlow(b, securityNone, 1, 1, 8) }
+func Benchmark_throughput_Flow_1VIF_1VC_1Flow(b *testing.B) { benchmarkFlow(b, securityNone, 1, 1, 1) }
+func Benchmark_throughput_Flow_1VIF_1VC_2Flow(b *testing.B) { benchmarkFlow(b, securityNone, 1, 1, 2) }
+func Benchmark_throughput_Flow_1VIF_1VC_8Flow(b *testing.B) { benchmarkFlow(b, securityNone, 1, 1, 8) }
 
-func BenchmarkFlow_1VIF_2VC_2Flow(b *testing.B) { benchmarkFlow(b, securityNone, 1, 2, 1) }
-func BenchmarkFlow_1VIF_2VC_8Flow(b *testing.B) { benchmarkFlow(b, securityNone, 1, 2, 4) }
+func Benchmark_throughput_Flow_1VIF_2VC_2Flow(b *testing.B) { benchmarkFlow(b, securityNone, 1, 2, 1) }
+func Benchmark_throughput_Flow_1VIF_2VC_8Flow(b *testing.B) { benchmarkFlow(b, securityNone, 1, 2, 4) }
 
-func BenchmarkFlow_2VIF_4VC_8Flow(b *testing.B) { benchmarkFlow(b, securityNone, 2, 2, 2) }
+func Benchmark_throughput_Flow_2VIF_4VC_8Flow(b *testing.B) { benchmarkFlow(b, securityNone, 2, 2, 2) }
 
-func BenchmarkTLS_1Conn(b *testing.B)  { benchmarkTLS(b, 1) }
-func BenchmarkTLS_2Conns(b *testing.B) { benchmarkTLS(b, 2) }
-func BenchmarkTLS_4Conns(b *testing.B) { benchmarkTLS(b, 4) }
-func BenchmarkTLS_8Conns(b *testing.B) { benchmarkTLS(b, 8) }
+func Benchmark_throughput_TLS_1Conn(b *testing.B)  { benchmarkTLS(b, 1) }
+func Benchmark_throughput_TLS_2Conns(b *testing.B) { benchmarkTLS(b, 2) }
+func Benchmark_throughput_TLS_4Conns(b *testing.B) { benchmarkTLS(b, 4) }
+func Benchmark_throughput_TLS_8Conns(b *testing.B) { benchmarkTLS(b, 8) }
 
-func BenchmarkFlow_1VIF_1VC_1FlowTLS(b *testing.B) { benchmarkFlow(b, securityTLS, 1, 1, 1) }
-func BenchmarkFlow_1VIF_1VC_2FlowTLS(b *testing.B) { benchmarkFlow(b, securityTLS, 1, 1, 2) }
-func BenchmarkFlow_1VIF_1VC_8FlowTLS(b *testing.B) { benchmarkFlow(b, securityTLS, 1, 1, 8) }
+func Benchmark_throughput_Flow_1VIF_1VC_1FlowTLS(b *testing.B) { benchmarkFlow(b, securityTLS, 1, 1, 1) }
+func Benchmark_throughput_Flow_1VIF_1VC_2FlowTLS(b *testing.B) { benchmarkFlow(b, securityTLS, 1, 1, 2) }
+func Benchmark_throughput_Flow_1VIF_1VC_8FlowTLS(b *testing.B) { benchmarkFlow(b, securityTLS, 1, 1, 8) }
 
-func BenchmarkFlow_1VIF_2VC_2FlowTLS(b *testing.B) { benchmarkFlow(b, securityTLS, 1, 2, 1) }
-func BenchmarkFlow_1VIF_2VC_8FlowTLS(b *testing.B) { benchmarkFlow(b, securityTLS, 1, 2, 4) }
+func Benchmark_throughput_Flow_1VIF_2VC_2FlowTLS(b *testing.B) { benchmarkFlow(b, securityTLS, 1, 2, 1) }
+func Benchmark_throughput_Flow_1VIF_2VC_8FlowTLS(b *testing.B) { benchmarkFlow(b, securityTLS, 1, 2, 4) }
 
-func BenchmarkFlow_2VIF_4VC_8FlowTLS(b *testing.B) { benchmarkFlow(b, securityTLS, 2, 2, 2) }
+func Benchmark_throughput_Flow_2VIF_4VC_8FlowTLS(b *testing.B) { benchmarkFlow(b, securityTLS, 2, 2, 2) }
 
 // A single empty test to avoid:
 // testing: warning: no tests to run
