mirror of
https://github.com/golang/go
synced 2024-11-22 04:24:39 -07:00
fmt/fmt_test.go: count mallocs in a few more cases.
Interesting that Fprintf can do zero mallocs. (Sprintf must allocate the returned string.) R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/4977049
This commit is contained in:
parent
2cf66c1d94
commit
b349cd2b0a
@ -5,6 +5,7 @@
|
|||||||
package fmt_test
|
package fmt_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
. "fmt"
|
. "fmt"
|
||||||
"io"
|
"io"
|
||||||
"math"
|
"math"
|
||||||
@ -503,12 +504,39 @@ func TestCountMallocs(t *testing.T) {
|
|||||||
Printf("mallocs per Sprintf(\"%%x\"): %d\n", mallocs/100)
|
Printf("mallocs per Sprintf(\"%%x\"): %d\n", mallocs/100)
|
||||||
runtime.UpdateMemStats()
|
runtime.UpdateMemStats()
|
||||||
mallocs = 0 - runtime.MemStats.Mallocs
|
mallocs = 0 - runtime.MemStats.Mallocs
|
||||||
|
for i := 0; i < 100; i++ {
|
||||||
|
Sprintf("%s", "hello")
|
||||||
|
}
|
||||||
|
runtime.UpdateMemStats()
|
||||||
|
mallocs += runtime.MemStats.Mallocs
|
||||||
|
Printf("mallocs per Sprintf(\"%%s\"): %d\n", mallocs/100)
|
||||||
|
runtime.UpdateMemStats()
|
||||||
|
mallocs = 0 - runtime.MemStats.Mallocs
|
||||||
for i := 0; i < 100; i++ {
|
for i := 0; i < 100; i++ {
|
||||||
Sprintf("%x %x", i, i)
|
Sprintf("%x %x", i, i)
|
||||||
}
|
}
|
||||||
runtime.UpdateMemStats()
|
runtime.UpdateMemStats()
|
||||||
mallocs += runtime.MemStats.Mallocs
|
mallocs += runtime.MemStats.Mallocs
|
||||||
Printf("mallocs per Sprintf(\"%%x %%x\"): %d\n", mallocs/100)
|
Printf("mallocs per Sprintf(\"%%x %%x\"): %d\n", mallocs/100)
|
||||||
|
buf := new(bytes.Buffer)
|
||||||
|
runtime.UpdateMemStats()
|
||||||
|
mallocs = 0 - runtime.MemStats.Mallocs
|
||||||
|
for i := 0; i < 100; i++ {
|
||||||
|
buf.Reset()
|
||||||
|
Fprintf(buf, "%x %x %x", i, i, i)
|
||||||
|
}
|
||||||
|
runtime.UpdateMemStats()
|
||||||
|
mallocs += runtime.MemStats.Mallocs
|
||||||
|
Printf("mallocs per Fprintf(buf, \"%%x %%x %%x\"): %d\n", mallocs/100)
|
||||||
|
runtime.UpdateMemStats()
|
||||||
|
mallocs = 0 - runtime.MemStats.Mallocs
|
||||||
|
for i := 0; i < 100; i++ {
|
||||||
|
buf.Reset()
|
||||||
|
Fprintf(buf, "%s", "hello")
|
||||||
|
}
|
||||||
|
runtime.UpdateMemStats()
|
||||||
|
mallocs += runtime.MemStats.Mallocs
|
||||||
|
Printf("mallocs per Fprintf(buf, \"%%s\"): %d\n", mallocs/100)
|
||||||
}
|
}
|
||||||
|
|
||||||
type flagPrinter struct{}
|
type flagPrinter struct{}
|
||||||
|
Loading…
Reference in New Issue
Block a user