1
0
mirror of https://github.com/golang/go synced 2024-11-12 09:50:21 -07:00
The Go programming language
Go to file
Brad Fitzpatrick 89b5c6c0af encoding/json: faster encoding
The old code was caching per-type struct field info. Instead,
cache type-specific encoding funcs, tailored for that
particular type to avoid unnecessary reflection at runtime.
Once the machine is built once, future encodings of that type
just run the func.

benchmark               old ns/op    new ns/op    delta
BenchmarkCodeEncoder     48424939     36975320  -23.64%

benchmark                old MB/s     new MB/s  speedup
BenchmarkCodeEncoder        40.07        52.48    1.31x

Additionally, the numbers seem stable now at ~52 MB/s, whereas
the numbers for the old code were all over the place: 11 MB/s,
40 MB/s, 13 MB/s, 39 MB/s, etc.  In the benchmark above I compared
against the best I saw the old code do.

R=rsc, adg
CC=gobot, golang-dev, r
https://golang.org/cl/9129044
2013-08-09 09:46:47 -07:00
api cmd/api: rewrite using go/types 2013-08-08 14:10:59 -07:00
doc doc/go1.2.txt: document previously committed features 2013-08-08 09:57:31 -07:00
include include/plan9: define size_t to fix build breakage 2013-06-28 12:16:33 -07:00
lib cmd/godoc: delete from core repository 2013-08-01 11:21:17 +10:00
misc misc/emacs: clear previous overlays before adding new ones 2013-08-09 08:56:15 -07:00
src encoding/json: faster encoding 2013-08-09 09:46:47 -07:00
test test: update bug086.go for current gccgo behaviour 2013-08-09 08:43:19 -07:00
.hgignore build: ignore new zfiles, delete temp goplay binary in run.bash 2013-08-02 19:14:13 -07:00
.hgtags tag go1.1.1 2013-06-13 12:52:02 +10:00
AUTHORS A+C: add googlemail aliases for deemok 2013-08-08 10:40:32 -07:00
CONTRIBUTORS A+C: add googlemail aliases for deemok 2013-08-08 10:40:32 -07:00
favicon.ico godoc: update favicon 2012-10-11 17:02:36 +11:00
LICENSE doc: update licensing text one more time 2012-03-27 15:09:13 +11:00
PATENTS LICENSE: separate, change PATENTS text 2010-12-06 16:31:59 -05:00
README build: update, streamline documentation for new $GOBIN 2010-08-24 20:00:50 -04:00
robots.txt godoc: serve robots.txt raw 2011-02-19 05:46:20 +11:00

This is the source code repository for the Go programming language.  

For documentation about how to install and use Go,
visit http://golang.org/ or load doc/install.html in your web browser.

After installing Go, you can view a nicely formatted
doc/install.html by running godoc --http=:6060
and then visiting http://localhost:6060/doc/install.html.

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

--

Binary Distribution Notes

If you have just untarred a binary Go distribution, you need to set
the environment variable $GOROOT to the full path of the go
directory (the one containing this README).  You can omit the
variable if you unpack it into /usr/local/go, or if you rebuild
from sources by running all.bash (see doc/install.html).
You should also add the Go binary directory $GOROOT/bin
to your shell's path.

For example, if you extracted the tar file into $HOME/go, you might
put the following in your .profile:

    export GOROOT=$HOME/go
    export PATH=$PATH:$GOROOT/bin

See doc/install.html for more details.