• Nigel Tao's avatar
    exp/html/atom: new package. · bb4a817a
    Nigel Tao authored
    50% fewer mallocs in HTML tokenization, resulting in 25% fewer mallocs
    in parsing go1.html.
    
    Making the parser use integer comparisons instead of string comparisons
    will be a follow-up CL, to be co-ordinated with Andy Balholm's work.
    
    exp/html benchmarks before/after:
    
    BenchmarkParser	     500	   4754294 ns/op	  16.44 MB/s
            parse_test.go:409: 500 iterations, 14651 mallocs per iteration
    BenchmarkRawLevelTokenizer	    2000	    903481 ns/op	  86.51 MB/s
            token_test.go:678: 2000 iterations, 28 mallocs per iteration
    BenchmarkLowLevelTokenizer	    2000	   1260485 ns/op	  62.01 MB/s
            token_test.go:678: 2000 iterations, 41 mallocs per iteration
    BenchmarkHighLevelTokenizer	    1000	   2165964 ns/op	  36.09 MB/s
            token_test.go:678: 1000 iterations, 6616 mallocs per iteration
    
    BenchmarkParser	     500	   4664912 ns/op	  16.76 MB/s
            parse_test.go:409: 500 iterations, 11266 mallocs per iteration
    BenchmarkRawLevelTokenizer	    2000	    903065 ns/op	  86.55 MB/s
            token_test.go:678: 2000 iterations, 28 mallocs per iteration
    BenchmarkLowLevelTokenizer	    2000	   1260032 ns/op	  62.03 MB/s
            token_test.go:678: 2000 iterations, 41 mallocs per iteration
    BenchmarkHighLevelTokenizer	    1000	   2143356 ns/op	  36.47 MB/s
            token_test.go:678: 1000 iterations, 3231 mallocs per iteration
    
    R=r, rsc, rogpeppe
    CC=andybalholm, golang-dev
    https://golang.org/cl/6255062
    bb4a817a
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
compress Loading commit data...
container Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
exp Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
old/netchan Loading commit data...
os Loading commit data...
path Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...