diff options
| author | Austin Clements <austin@google.com> | 2016-12-24 17:03:10 -0800 |
|---|---|---|
| committer | Austin Clements <austin@google.com> | 2017-01-08 00:01:30 +0000 |
| commit | ffedff7e506cdf298f06ad36f3264ca197aa7d25 (patch) | |
| tree | e451c2b68ec17ca4b470ab332825083eea749c12 /src/runtime/mksizeclasses.go | |
| parent | 3156736189dbc4e4a4a955c78334590819c9a914 (diff) | |
| download | go-ffedff7e506cdf298f06ad36f3264ca197aa7d25.tar.xz | |
runtime: add table of size classes in a comment
Change-Id: I52fae67c9aeceaa23e70f2ef0468745b354f8c75
Reviewed-on: https://go-review.googlesource.com/34932
Reviewed-by: Minux Ma <minux@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
Diffstat (limited to 'src/runtime/mksizeclasses.go')
| -rw-r--r-- | src/runtime/mksizeclasses.go | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/runtime/mksizeclasses.go b/src/runtime/mksizeclasses.go index 587d3c77a1..0f897ba8e6 100644 --- a/src/runtime/mksizeclasses.go +++ b/src/runtime/mksizeclasses.go @@ -54,6 +54,8 @@ func main() { fmt.Fprintln(&b, "package runtime") classes := makeClasses() + printComment(&b, classes) + printClasses(&b, classes) out, err := format.Source(b.Bytes()) @@ -239,6 +241,20 @@ nextk: } } +func printComment(w io.Writer, classes []class) { + fmt.Fprintf(w, "// %-5s %-9s %-10s %-7s %-11s\n", "class", "bytes/obj", "bytes/span", "objects", "waste bytes") + for i, c := range classes { + if i == 0 { + continue + } + spanSize := c.npages * pageSize + objects := spanSize / c.size + waste := spanSize - c.size*(spanSize/c.size) + fmt.Fprintf(w, "// %5d %9d %10d %7d %11d\n", i, c.size, spanSize, objects, waste) + } + fmt.Fprintf(w, "\n") +} + func printClasses(w io.Writer, classes []class) { fmt.Fprintln(w, "const (") fmt.Fprintf(w, "_MaxSmallSize = %d\n", maxSmallSize) |
