go/src/pkg
Dmitriy Vyukov 86da989ee5 runtime: introduce helper persistentalloc() function
It is a caching wrapper around SysAlloc() that can allocate small chunks.
Use it for symtab allocations. Reduces number of symtab walks from 4 to 3
(reduces buildfuncs time from 10ms to 7.5ms on a large binary,
reduces initial heap size by 680K on the same binary).
Also can be used for type info allocation, itab allocation.
There are also several places in GC where we do the same thing,
they can be changed to use persistentalloc().
Also can be used in FixAlloc, because each instance of FixAlloc allocates
in 128K regions, which is too eager.
Reincarnation of committed and rolled back https://golang.org/cl/9805043
The latent bugs that it revealed are fixed:
https://golang.org/cl/9837049
https://golang.org/cl/9778048

R=golang-dev, khr
CC=golang-dev
https://golang.org/cl/9778049
2013-05-31 10:42:30 +04:00
..
archive archive/tar: skip NUL-filled unused octal fields 2013-05-15 04:40:42 +08:00
bufio bufio: fix SplitFunc docs 2013-05-23 04:38:32 +08:00
builtin builtin: document true and false. 2013-04-18 14:36:08 -07:00
bytes runtime/bytes: fast Compare for byte arrays and strings. 2013-05-14 16:05:51 -07:00
compress compress/flate: faster version of forwardCopy 2013-05-18 15:28:27 -07:00
container container/heap: fix int overflow bug 2013-03-04 10:25:21 -05:00
crypto crypto/tls: Check all certificates in the path. 2013-05-29 11:21:32 -04:00
database/sql database/sql: remove extra RemoveDep call 2013-05-21 14:58:08 -07:00
debug debug/elf: repair GNU version symbols. 2013-03-22 01:27:55 +01:00
encoding asn1: Stricter checks for DER encoded booleans 2013-05-24 12:37:42 -04:00
errors
expvar all: make tests able to run multiple times. 2013-01-27 00:24:09 +01:00
flag all: make tests able to run multiple times. 2013-01-27 00:24:09 +01:00
fmt fmt: change evalutation of indexed arg to match docs 2013-05-29 11:29:29 -04:00
go go/doc: fix build 2013-05-22 14:22:50 -07:00
hash build: update assembly variable names for vet 2013-03-22 12:57:55 -04:00
html build: remove dead code 2013-03-22 17:28:22 -04:00
image image: minor update of comments. 2013-05-14 13:28:16 -07:00
index/suffixarray
io io: Prioritize WriterTos over ReaderFroms in Copy. 2013-05-23 18:29:19 +02:00
log log/syslog: fix deadlock in test 2013-05-24 18:35:48 +04:00
math math/big: save some copies in binaryGCD. 2013-05-15 10:03:22 -04:00
mime mime/multipart: don't strip leading space/tab in quoted-printable decoding 2013-04-17 20:04:58 -07:00
net net/http: add another Hijacker test 2013-05-21 18:43:28 -07:00
os os/exec: fix test hang 2013-05-28 21:09:27 +04:00
path path/filepath: Skip TestEvalSymlinks. Plan 9 doesn't have symlinks. 2013-05-24 11:01:04 -07:00
reflect runtime: introduce cnewarray() to simplify allocation of typed arrays 2013-05-27 11:29:11 +04:00
regexp regexp: doc fix 2013-05-02 18:59:39 -07:00
runtime runtime: introduce helper persistentalloc() function 2013-05-31 10:42:30 +04:00
sort sort: don't depend on math 2013-04-20 17:20:41 -07:00
strconv strconv: remove some test TODOs and adjust malloc limits lower 2013-04-04 17:04:18 -07:00
strings bytes,strings: remove user name from BUG in comment 2013-03-19 15:04:18 -07:00
sync sync, sync/atomic: do not corrupt race detector after a nil dereference. 2013-04-08 23:46:54 +02:00
syscall syscall: add IPv6 socket options for Unix variants 2013-05-23 16:22:05 +09:00
testing testing: quantize AllocsPerRun 2013-05-30 11:28:08 -04:00
text text/template: comment fix 2013-05-03 14:22:34 -07:00
time time: remove Time.FormatAppend 2013-05-21 14:32:09 -07:00
unicode unicode: modify a comment to the convention format. 2013-03-19 14:47:41 -04:00
unsafe