1
0
mirror of https://github.com/golang/go synced 2024-11-23 18:10:04 -07:00
The Go programming language
Go to file
Josh Bleecher Snyder 4aeac68c92 runtime, cmd/compile: re-order PCDATA and FUNCDATA indices
The pclntab encoding supports writing only some PCDATA and FUNCDATA values.
However, the encoding is dense: The max index in use determines the space used.
We should thus choose a numbering in which frequently used indices are smaller.

This change re-orders the PCDATA and FUNCDATA indices using that principle,
using a quick and dirty instrumentation to measure index frequency.

It shrinks binaries by about 0.5%.

Updates #6853

file      before    after     Δ       %       
go        14745044  14671316  -73728  -0.500% 
addr2line 4305128   4280552   -24576  -0.571% 
api       6095800   6058936   -36864  -0.605% 
asm       4930928   4906352   -24576  -0.498% 
buildid   2881520   2861040   -20480  -0.711% 
cgo       4896584   4867912   -28672  -0.586% 
compile   25868408  25770104  -98304  -0.380% 
cover     5319656   5286888   -32768  -0.616% 
dist      3654528   3634048   -20480  -0.560% 
doc       4719672   4691000   -28672  -0.607% 
fix       3418312   3393736   -24576  -0.719% 
link      6137952   6109280   -28672  -0.467% 
nm        4250536   4225960   -24576  -0.578% 
objdump   4665192   4636520   -28672  -0.615% 
pack      2297488   2285200   -12288  -0.535% 
pprof     14735332  14657508  -77824  -0.528% 
test2json 2834952   2818568   -16384  -0.578% 
trace     11679964  11618524  -61440  -0.526% 
vet       8452696   8403544   -49152  -0.581% 

Change-Id: I30665dce57ec7a52e7d3c6718560b3aa5b83dd0b
Reviewed-on: https://go-review.googlesource.com/c/go/+/171760
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
2019-04-19 15:40:42 +00:00
.github .github: don't render author-facing text in ISSUE_TEMPLATE 2018-11-02 04:47:34 +00:00
api text/scanner: don't liberally consume (invalid) floats or underbars 2019-02-20 20:23:28 +00:00
doc doc: fix typo in go1.12 release notes 2019-04-16 14:47:58 +00:00
lib/time time: read 64-bit data if available 2019-02-26 23:10:35 +00:00
misc misc/cgo/testcshared: support testing on self-hosted android 2019-04-16 15:10:00 +00:00
src runtime, cmd/compile: re-order PCDATA and FUNCDATA indices 2019-04-19 15:40:42 +00:00
test test: fix escape_runtime_atomic.go 2019-04-17 22:55:26 +00:00
.gitattributes
.gitignore .gitignore: ignore src/cmd/dist/dist 2017-10-28 21:55:49 +00:00
AUTHORS A+C: change email address for Elias Naur 2019-01-23 15:05:26 +00:00
CONTRIBUTING.md all: restore changes from faulty merge/revert 2018-02-12 20:13:59 +00:00
CONTRIBUTORS CONTRIBUTORS: second round of updates for Go 1.12 2019-01-30 18:01:19 +00:00
favicon.ico website: recreate 16px and 32px favicon 2016-08-25 15:43:32 +00:00
LICENSE doc: revert copyright date to 2009 2016-06-01 22:40:04 +00:00
PATENTS
README.md README: linkify some paths 2018-06-06 18:07:01 +00:00
robots.txt

The Go Programming Language

Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.

Gopher image Gopher image by Renee French, licensed under Creative Commons 3.0 Attributions license.

Our canonical Git repository is located at https://go.googlesource.com/go. There is a mirror of the repository at https://github.com/golang/go.

Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.

Download and Install

Binary Distributions

Official binary distributions are available at https://golang.org/dl/.

After downloading a binary release, visit https://golang.org/doc/install or load doc/install.html in your web browser for installation instructions.

Install From Source

If a binary distribution is not available for your combination of operating system and architecture, visit https://golang.org/doc/install/source or load doc/install-source.html in your web browser for source installation instructions.

Contributing

Go is the work of thousands of contributors. We appreciate your help!

To contribute, please read the contribution guidelines: https://golang.org/doc/contribute.html

Note that the Go project uses the issue tracker for bug reports and proposals only. See https://golang.org/wiki/Questions for a list of places to ask questions about the Go language.