1 // Copyright 2009 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
15 const memTestN
= 1000000
18 func s(n
uint64) string {
19 str
:= fmt
.Sprintf("%d", n
)
21 a
:= make([]string, (lens
+2)/3)
28 a
[len(a
)-i
-1] = str
[start
:lens
]
31 return strings
.Join(a
, " ")
35 func TestVectorNums(t
*testing
.T
) {
42 m0
:= runtime
.MemStats
43 v
.Resize(memTestN
, memTestN
)
44 for i
:= 0; i
< memTestN
; i
++ {
51 n
:= m
.Alloc
- m0
.Alloc
52 t
.Logf("%T.Push(%#v), n = %s: Alloc/n = %.2f\n", v
, c
, s(memTestN
), float64(n
)/memTestN
)
56 func TestIntVectorNums(t
*testing
.T
) {
63 m0
:= runtime
.MemStats
64 v
.Resize(memTestN
, memTestN
)
65 for i
:= 0; i
< memTestN
; i
++ {
72 n
:= m
.Alloc
- m0
.Alloc
73 t
.Logf("%T.Push(%#v), n = %s: Alloc/n = %.2f\n", v
, c
, s(memTestN
), float64(n
)/memTestN
)
77 func TestStringVectorNums(t
*testing
.T
) {
84 m0
:= runtime
.MemStats
85 v
.Resize(memTestN
, memTestN
)
86 for i
:= 0; i
< memTestN
; i
++ {
93 n
:= m
.Alloc
- m0
.Alloc
94 t
.Logf("%T.Push(%#v), n = %s: Alloc/n = %.2f\n", v
, c
, s(memTestN
), float64(n
)/memTestN
)
98 func BenchmarkVectorNums(b
*testing
.B
) {
104 for i
:= 0; i
< b
.N
; i
++ {
110 func BenchmarkIntVectorNums(b
*testing
.B
) {
116 for i
:= 0; i
< b
.N
; i
++ {
122 func BenchmarkStringVectorNums(b
*testing
.B
) {
128 for i
:= 0; i
< b
.N
; i
++ {