neo-go/pkg/core
Roman Khimov d9ee31fb52 *: use clear() to clear maps
Supposedly more efficient since we can avoid some memory management dances.

Memory pool agrees:

goos: linux
goarch: amd64
pkg: github.com/nspcc-dev/neo-go/pkg/core/mempool
cpu: AMD Ryzen 7 PRO 7840U w/ Radeon 780M Graphics
                       │  pool.old   │              pool.new               │
                       │   sec/op    │   sec/op     vs base                │
Pool/one,_incr_fee-16    12.44m ± 1%   12.51m ± 1%   +0.55% (p=0.029 n=10)
Pool/many,_same_fee-16   4.960m ± 2%   3.100m ± 1%  -37.50% (p=0.000 n=10)
Pool/many,_incr_fee-16   16.03m ± 2%   14.11m ± 1%  -12.00% (p=0.000 n=10)
Pool/one,_same_fee-16                  1.742m ± 1%
geomean                  9.964m        5.556m       -17.92%

                       │    pool.old     │                pool.new                │
                       │      B/op       │      B/op       vs base                │
Pool/one,_incr_fee-16     8.117Ki ± 120%   7.101Ki ± 128%  -12.52% (p=0.022 n=10)
Pool/many,_same_fee-16   3941.2Ki ±   0%   805.4Ki ±   0%  -79.56% (p=0.000 n=10)
Pool/many,_incr_fee-16   3936.2Ki ±   0%   829.8Ki ±   0%  -78.92% (p=0.000 n=10)
Pool/one,_same_fee-16                      12.98Ki ±  10%
geomean                   501.2Ki          88.59Ki         -66.47%

                       │   pool.old   │               pool.new               │
                       │  allocs/op   │  allocs/op    vs base                │
Pool/one,_incr_fee-16     28.00 ± 21%    24.00 ± 21%  -14.29% (p=0.002 n=10)
Pool/many,_same_fee-16   40.38k ±  0%   40.03k ±  0%   -0.86% (p=0.000 n=10)
Pool/many,_incr_fee-16   40.38k ±  0%   40.04k ±  0%   -0.85% (p=0.000 n=10)
Pool/one,_same_fee-16                    23.00 ±  4%
geomean                  3.574k          969.8         -5.55%

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-08-24 22:41:48 +03:00
..
block block: add PrimaryIndex to the stack item of block 2024-07-27 12:35:19 +03:00
chaindump chaindump: microoptimize memory management 2024-07-16 15:03:17 +03:00
dao dao: do not remove block executable by conflict record stub 2024-05-16 12:13:41 +03:00
fee vm: add ABORTMSG and ASSERTMSG opcodes 2023-08-10 12:41:30 +03:00
interop *: fix linter issues 2024-08-14 12:36:15 +03:00
mempool *: use clear() to clear maps 2024-08-24 22:41:48 +03:00
mempoolevent *: replace interface{} with any keyword 2023-04-04 13:22:42 +03:00
mpt *: use clear() to clear maps 2024-08-24 22:41:48 +03:00
native *: fix linter issues 2024-08-14 12:36:15 +03:00
state manifest: make default trusts invalid 2024-07-26 15:18:25 +03:00
stateroot *: fix linter issues 2024-08-14 12:36:15 +03:00
statesync *: replace slice.Copy with bytes.Clone 2024-03-05 13:54:10 +03:00
storage storage: bytes.Clone(nil) == nil 2024-05-16 19:29:11 +03:00
test_data core: refactor helper test contracts generation 2022-03-30 11:46:29 +03:00
transaction dao: fix transaction application log decoding 2024-05-16 12:13:41 +03:00
basic_chain_test.go config: add a special Blockchain type to configure Blockchain 2022-12-07 17:35:53 +03:00
bench_test.go core: make GetHeaderHash accept uint32 2022-11-25 14:30:51 +03:00
blockchain.go *: make use of min/max where appropriate 2024-08-23 22:11:29 +03:00
blockchain_core_test.go core: introduce Echidna hardfork 2024-08-12 11:10:26 +03:00
blockchain_neotest_test.go core: introduce Echidna hardfork 2024-08-12 11:10:26 +03:00
doc.go *: apply go 1.19 formatter heuristics 2022-08-09 15:37:52 +03:00
headerhashes.go *: use v2 LRU, fix #3322 2024-03-05 18:39:17 +03:00
helper_test.go *: add GenesisTransaction extension to the protocol configuration 2023-10-19 18:33:50 +03:00
interops.go core: add System.Runtime.CurrentSigners syscall 2023-11-20 14:46:27 +03:00
native_designate_test.go *: introduce Genesis protocol configuration 2023-10-19 18:30:20 +03:00
prometheus.go core: distinguish notarypool/mempool metrics 2023-04-13 18:40:19 +03:00
util.go *: add GenesisTransaction extension to the protocol configuration 2023-10-19 18:33:50 +03:00
util_test.go *: add GenesisTransaction extension to the protocol configuration 2023-10-19 18:33:50 +03:00