go-ethereum/rlp
Felix Lange 4d33de9b49
rlp: optimize big.Int decoding for size <= 32 bytes (#22927)
This change grows the static integer buffer in Stream to 32 bytes,
making it possible to decode 256bit integers without allocating a
temporary buffer.

In the recent commit 088da24, Stream struct size decreased from 120
bytes down to 88 bytes. This commit grows the struct to 112 bytes again,
but the size change will not degrade performance because Stream
instances are internally cached in sync.Pool.

    name             old time/op    new time/op    delta
    DecodeBigInts-8    12.2µs ± 0%     8.6µs ± 4%  -29.58%  (p=0.000 n=9+10)

    name             old speed      new speed      delta
    DecodeBigInts-8   230MB/s ± 0%   326MB/s ± 4%  +42.04%  (p=0.000 n=9+10)
2021-05-25 21:56:25 +02:00
..
decode_tail_test.go all: update license information 2016-04-15 09:48:05 +02:00
decode_test.go rlp: optimize big.Int decoding for size <= 32 bytes (#22927) 2021-05-25 21:56:25 +02:00
decode.go rlp: optimize big.Int decoding for size <= 32 bytes (#22927) 2021-05-25 21:56:25 +02:00
doc.go rlp: add support for optional struct fields (#22832) 2021-05-07 14:37:13 +02:00
encode_test.go rlp: optimize big.Int decoding for size <= 32 bytes (#22927) 2021-05-25 21:56:25 +02:00
encode.go rlp: optimize byte array handling (#22924) 2021-05-22 15:10:16 +02:00
encoder_example_test.go rlp: improve nil pointer handling (#20064) 2019-09-13 11:10:57 +02:00
iterator_test.go cmd, core, eth: background transaction indexing (#20302) 2020-05-11 18:58:43 +03:00
iterator.go core/rawdb: fix transaction indexing/unindexing hashing error (#22457) 2021-03-16 12:15:14 +02:00
raw_test.go core/types, rlp: optimize derivesha (#21728) 2020-11-04 19:29:24 +01:00
raw.go core/types, rlp: optimize derivesha (#21728) 2020-11-04 19:29:24 +01:00
safe.go rlp, tests/fuzzers/bls12381: gofmt (#22937) 2021-05-25 10:14:39 +02:00
typecache.go rlp: use atomic.Value for type cache (#22902) 2021-05-22 13:34:29 +02:00
unsafe.go rlp: optimize byte array handling (#22924) 2021-05-22 15:10:16 +02:00