neo-go/pkg/vm
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
..
emit native: add test for multisignature Koblitz witness verification 2024-05-13 09:33:42 +03:00
invocations vm: move InvocationTree into a package of its own 2022-07-08 23:30:30 +03:00
opcode vm: add ABORTMSG and ASSERTMSG opcodes 2023-08-10 12:41:30 +03:00
stackitem *: use clear() to clear maps 2024-08-24 22:41:48 +03:00
testdata core: fix formatted error on transaction verification 2023-07-21 13:50:20 +03:00
vmstate vm: move State type into a package of its own 2022-07-08 18:34:52 +03:00
bench_test.go vm: optimize IsSignatureContract 2022-06-07 10:29:13 +03:00
context.go interop: use executing contract state for permissions checks 2024-06-03 12:32:10 +03:00
contract_checks.go vm: optimize IsSignatureContract 2022-06-07 10:29:13 +03:00
contract_checks_test.go vm: avoid panic in IsScriptCorrect 2022-03-17 20:12:50 +03:00
debug_test.go interop: use executing contract state for permissions checks 2024-06-03 12:32:10 +03:00
exception.go *: replace interface{} with any keyword 2023-04-04 13:22:42 +03:00
fuzz_test.go *: drop go 1.18 support in doc and build targets 2023-10-12 17:59:42 +03:00
invocation_tree_test.go vm: don't use Stack for istack 2022-11-18 11:35:29 +03:00
iterator_test.go vm: Add tests for iterator unwrap scripts 2023-12-29 10:50:43 +03:00
json_test.go vm: update VM json tests path 2023-08-10 12:54:07 +03:00
opcodebench_test.go *: replace interface{} with any keyword 2023-04-04 13:22:42 +03:00
ref_counter.go vm: optimize refcounter 2022-08-23 13:18:06 +03:00
ref_counter_test.go vm/bench: extend refcounter benchmarks 2022-08-23 13:08:42 +03:00
slot.go vm: simplify (slot).Set code 2022-05-17 16:26:22 +03:00
slot_test.go vm: count initial Null slot variables as well 2022-05-16 17:42:57 +03:00
stack.go *: improve error text for System.Crypto.CheckMultisig handling 2024-03-25 19:16:21 +03:00
stack_test.go vm: rework stack as a simple slice 2021-08-24 15:28:14 +03:00
vm.go Merge pull request #3460 from NeoGoBros/add-onexec-hook 2024-07-03 13:21:46 +03:00
vm_test.go vm: implement OnExecHook 2024-07-03 12:49:09 +03:00