neo-go/pkg/core/transaction
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
..
attribute.go core: add NotaryAssisted transaction attribute 2020-11-25 18:37:29 +03:00
attribute_test.go transaction: marshal oracle response codes as strings 2021-04-06 22:50:42 +03:00
attrtype.go *: enable godot linter and fix all its warnings 2021-05-12 23:17:03 +03:00
attrtype_string.go core: add NotaryAssisted transaction attribute 2020-11-25 18:37:29 +03:00
bench_test.go *: do not use WriteArray for frequently used items 2021-08-06 11:59:20 +03:00
conflicts.go core: do not rewrite binreader error for bad Conflicts attr 2020-11-25 18:37:24 +03:00
doc.go *: add more package-specific documentation 2021-03-19 16:18:45 +03:00
helper_test.go *: enable godot linter and fix all its warnings 2021-05-12 23:17:03 +03:00
not_valid_before.go core: check the length of NotValidBefore attr while decoding 2020-11-25 18:37:29 +03:00
notary_assisted.go core: add NotaryAssisted transaction attribute 2020-11-25 18:37:29 +03:00
oracle.go oracle: check response Content-Type 2021-07-12 13:13:48 +03:00
oracle_test.go pkg: move internal/ package to the root directory 2020-11-24 16:39:56 +03:00
oracleresponsecode_string.go oracle: check response Content-Type 2021-07-12 13:13:48 +03:00
reserved.go core: reserve attributes range for experimantal purposes 2020-10-23 11:04:59 +03:00
signer.go *: enable godot linter and fix all its warnings 2021-05-12 23:17:03 +03:00
signer_test.go pkg: move internal/ package to the root directory 2020-11-24 16:39:56 +03:00
transaction.go *: do not use WriteArray for frequently used items 2021-08-06 11:59:20 +03:00
transaction_test.go transaction: drop Network from Transaction 2021-03-26 13:45:18 +03:00
witness.go transaction: fix witness script length limits 2020-10-07 18:05:23 +03:00
witness_scope.go transaction: rename FeeOnly to None 2020-10-01 15:28:19 +03:00
witness_scope_string.go transaction: rename FeeOnly to None 2020-10-01 15:28:19 +03:00
witness_scope_test.go transaction: fix ineffassign GoReportCard issue 2020-08-14 12:08:16 +03:00
witness_test.go pkg: move internal/ package to the root directory 2020-11-24 16:39:56 +03:00