neo-go/pkg/core
Evgeniy Stratonikov 291a29af1e *: do not use WriteArray for frequently used items
`WriteArray` involves reflection, it makes sense to optimize
serialization of transactions and application logs which are serialized
constantly. Adding case in a type switch in `WriteArray` is not an
option because we don't want new dependencies for `io` package.

```
name                          old time/op    new time/op    delta
AppExecResult_EncodeBinary-8     852ns ± 3%     656ns ± 2%  -22.94%  (p=0.000 n=10+9)

name                          old alloc/op   new alloc/op   delta
AppExecResult_EncodeBinary-8      448B ± 0%      376B ± 0%  -16.07%  (p=0.000 n=10+10)

name                          old allocs/op  new allocs/op  delta
AppExecResult_EncodeBinary-8      7.00 ± 0%      5.00 ± 0%  -28.57%  (p=0.000 n=10+10)
```

```
name                 old time/op    new time/op    delta
Transaction_Bytes-8    1.29µs ± 3%    0.76µs ± 5%  -41.52%  (p=0.000 n=9+10)

name                 old alloc/op   new alloc/op   delta
Transaction_Bytes-8    1.21kB ± 0%    1.01kB ± 0%  -16.56%  (p=0.000 n=10+10)

name                 old allocs/op  new allocs/op  delta
Transaction_Bytes-8      12.0 ± 0%       7.0 ± 0%  -41.67%  (p=0.000 n=10+10)
```

Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2021-08-06 11:59:20 +03:00
..
block core/block: add Nonce field to header 2021-07-15 15:58:49 +03:00
blockchainer core: implement dynamic NEP17 balances tracking 2021-07-29 10:23:01 +03:00
chaindump block: drop Network from the Header 2021-03-26 13:45:18 +03:00
dao dao: drop dropNEP17Cache from Cached 2021-07-30 15:45:17 +03:00
fee fee: use array for opcodes 2021-08-02 20:18:33 +03:00
interop interop: use non-Cached wrapped DAO 2021-07-30 15:45:17 +03:00
mempool core: move mempool.Event to a separate package 2021-06-01 12:24:28 +03:00
mempoolevent core: move mempool.Event to a separate package 2021-06-01 12:24:28 +03:00
mpt mpt: do not allocate NodeObject for serialization 2021-08-06 10:28:19 +03:00
native native: drop Refuel method from GAS 2021-08-05 10:27:13 +03:00
state *: do not use WriteArray for frequently used items 2021-08-06 11:59:20 +03:00
stateroot *: increase GAS for verification 2021-07-14 10:27:09 +03:00
storage storage: allow accessing MemCachedStore during Persist 2021-08-02 16:33:00 +03:00
test_data core/block: add Nonce field to header 2021-07-15 15:58:49 +03:00
transaction *: do not use WriteArray for frequently used items 2021-08-06 11:59:20 +03:00
blockchain.go core: ensure data logged is from persistent store 2021-08-02 16:33:09 +03:00
blockchain_test.go core: don't spawn goroutine for persist function 2021-08-02 16:33:00 +03:00
doc.go core: add Blockchain event subscription mechanism 2020-05-25 00:27:39 +03:00
helper_test.go core: implement dynamic NEP17 balances tracking 2021-07-29 10:23:01 +03:00
interop_system.go *: simplify some integer checks with IsUint64() 2021-07-19 15:42:42 +03:00
interop_system_test.go native: drop Refuel method from GAS 2021-08-05 10:27:13 +03:00
interops.go interop: implement System.Runtime.GetRandom 2021-07-15 16:00:01 +03:00
interops_test.go dao: drop network from DAO 2021-03-26 13:45:18 +03:00
native_contract_test.go core: don't spawn goroutine for persist function 2021-08-02 16:33:00 +03:00
native_designate_test.go core/test: get rid of empty tx scripts 2021-07-15 15:58:49 +03:00
native_gas_test.go native: drop Refuel method from GAS 2021-08-05 10:27:13 +03:00
native_ledger_test.go core/block: add Nonce field to header 2021-07-15 15:58:49 +03:00
native_management_test.go core: maintain a set of NEP17-compliant contracts 2021-07-28 13:22:53 +03:00
native_neo_test.go core/test: get rid of empty tx scripts 2021-07-15 15:58:49 +03:00
native_notary_test.go config: make MaxValidUntilBlockIncrement configurable 2021-05-17 13:43:03 +03:00
native_oracle_test.go core/test: get rid of empty tx scripts 2021-07-15 15:58:49 +03:00
native_policy_test.go core: don't spawn goroutine for persist function 2021-08-02 16:33:00 +03:00
nonnative_name_service_test.go examples: fix IPv6 bounds check 2021-05-28 11:31:09 +03:00
notary_test.go notary: process new transactions in a separate goroutine 2021-07-23 14:48:00 +03:00
oracle_test.go *: simplify some error messages 2021-07-23 10:08:09 +03:00
prometheus.go stateroot: move state-root related logic to core/stateroot 2021-03-09 13:48:29 +03:00
stateroot_test.go *: create real temporary dirs and files in tests 2021-07-20 12:51:11 +03:00
util.go core/block: add Nonce field to header 2021-07-15 15:58:49 +03:00
util_test.go core/block: add Nonce field to header 2021-07-15 15:58:49 +03:00