Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(719)

Delta Between Two Patch Sets: src/pkg/runtime/iface_test.go

Issue 5777048: code review 5777048: runtime: add interface microbenchmarks (Closed)
Left Patch Set: diff -r c8614af8523a https://go.googlecode.com/hg/ Created 12 years ago
Right Patch Set: diff -r 29d6152320be https://go.googlecode.com/hg/ Created 11 years, 11 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « no previous file | no next file » | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 // Copyright 2012 The Go Authors. All rights reserved. 1 // Copyright 2012 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style 2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file. 3 // license that can be found in the LICENSE file.
4
4 package runtime_test 5 package runtime_test
5 6
6 import ( 7 import (
7 "bytes" 8 "bytes"
8 "io" 9 "io"
9 "testing" 10 "testing"
10 ) 11 )
11 12
12 var ( 13 var (
13 » I interface{} 14 » I interface{}
14 » J int 15 » J int
15 » B = new(bytes.Buffer) 16 » B = new(bytes.Buffer)
16 » W io.Writer = B 17 » W io.Writer = B
17 » I2 interface{} = B 18 » I2 interface{} = B
18 » R io.ReadWriter = B 19 » R io.ReadWriter = B
20 » Big [2]*int
19 ) 21 )
20 22
21 func BenchmarkConvT2E(b *testing.B) { 23 func BenchmarkConvT2E(b *testing.B) {
22 for i := 0; i < b.N; i++ { 24 for i := 0; i < b.N; i++ {
23 I = 1 25 I = 1
26 }
27 }
28
29 func BenchmarkConvT2EBig(b *testing.B) {
30 v := [2]*int{}
31 for i := 0; i < b.N; i++ {
32 I = v
24 } 33 }
25 } 34 }
26 35
27 func BenchmarkConvT2I(b *testing.B) { 36 func BenchmarkConvT2I(b *testing.B) {
28 for i := 0; i < b.N; i++ { 37 for i := 0; i < b.N; i++ {
29 W = B 38 W = B
30 } 39 }
31 } 40 }
32 41
33 func BenchmarkConvI2E(b *testing.B) { 42 func BenchmarkConvI2E(b *testing.B) {
34 for i := 0; i < b.N; i++ { 43 for i := 0; i < b.N; i++ {
35 I = W 44 I = W
36 } 45 }
37 } 46 }
38 47
39 func BenchmarkConvI2I(b *testing.B) { 48 func BenchmarkConvI2I(b *testing.B) {
40 for i := 0; i < b.N; i++ { 49 for i := 0; i < b.N; i++ {
41 W = R 50 W = R
42 } 51 }
43 } 52 }
44 53
45 func BenchmarkAssertE2T(b *testing.B) { 54 func BenchmarkAssertE2T(b *testing.B) {
46 I = 1 55 I = 1
47 for i := 0; i < b.N; i++ { 56 for i := 0; i < b.N; i++ {
48 J = I.(int) 57 J = I.(int)
49 } 58 }
50 } 59 }
51 60
61 func BenchmarkAssertE2TBig(b *testing.B) {
62 var v interface{} = [2]*int{}
63 for i := 0; i < b.N; i++ {
64 Big = v.([2]*int)
65 }
66 }
67
52 func BenchmarkAssertE2I(b *testing.B) { 68 func BenchmarkAssertE2I(b *testing.B) {
53 for i := 0; i < b.N; i++ { 69 for i := 0; i < b.N; i++ {
54 W = I2.(io.Writer) 70 W = I2.(io.Writer)
55 } 71 }
56 } 72 }
57 73
58 func BenchmarkAssertI2T(b *testing.B) { 74 func BenchmarkAssertI2T(b *testing.B) {
59 for i := 0; i < b.N; i++ { 75 for i := 0; i < b.N; i++ {
60 B = W.(*bytes.Buffer) 76 B = W.(*bytes.Buffer)
61 } 77 }
62 } 78 }
63 79
64 func BenchmarkAssertI2I(b *testing.B) { 80 func BenchmarkAssertI2I(b *testing.B) {
65 for i := 0; i < b.N; i++ { 81 for i := 0; i < b.N; i++ {
66 W = R.(io.Writer) 82 W = R.(io.Writer)
67 } 83 }
68 } 84 }
69 85
70 func BenchmarkAssertI2E(b *testing.B) { 86 func BenchmarkAssertI2E(b *testing.B) {
71 for i := 0; i < b.N; i++ { 87 for i := 0; i < b.N; i++ {
72 » » W = I2.(io.Writer) 88 » » I = R.(interface{})
73 } 89 }
74 } 90 }
75 91
76 func BenchmarkAssertE2E(b *testing.B) { 92 func BenchmarkAssertE2E(b *testing.B) {
77 for i := 0; i < b.N; i++ { 93 for i := 0; i < b.N; i++ {
78 I = I2.(interface{}) 94 I = I2.(interface{})
79 } 95 }
80 } 96 }
LEFTRIGHT
« no previous file | no next file » | Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Toggle Comments ('s')

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b