8333765b27
* x/evm/keeper: save 24B with Go in-condition variable idiom The prior code doubly invoked (*ethereum/go-ethereum/core/types.Transaction).To() which is quite expensive, and firstly copies 20 bytes each time, then that gets rounded up to the proper size class/pointer alignment so on 64-bit machines 20B -> 24B. Isolating a benchmark for this code per issue #826 shows this saves quite a bit of bytes and some nano seconds which all count up towards the transactions per seconds being processed: ```shell $ benchstat before.txt after.txt name old time/op new time/op delta CopyAddr-8 38.4ns ± 3% 19.3ns ± 3% -49.66% (p=0.000 n=10+10) name old alloc/op new alloc/op delta CopyAddr-8 48.0B ± 0% 24.0B ± 0% -50.00% (p=0.000 n=10+10) name old allocs/op new allocs/op delta CopyAddr-8 2.00 ± 0% 1.00 ± 0% -50.00% (p=0.000 n=10+10) ``` Fixes #826 * changelog * lint * Revert stray changes that were used in testing * rm log Co-authored-by: Federico Kunze Küllmer <federico.kunze94@gmail.com>
84 lines
2.0 KiB
YAML
84 lines
2.0 KiB
YAML
run:
|
|
tests: false
|
|
# timeout for analysis, e.g. 30s, 5m, default is 1m
|
|
# timeout: 5m
|
|
|
|
linters:
|
|
enable:
|
|
- bodyclose
|
|
- deadcode
|
|
- depguard
|
|
- dogsled
|
|
- dupl
|
|
- errcheck
|
|
- goconst
|
|
- gocritic
|
|
- gofmt
|
|
- goimports
|
|
- revive
|
|
- gosec
|
|
- gosimple
|
|
- govet
|
|
- ineffassign
|
|
# - lll TODO: enable
|
|
- misspell
|
|
- nakedret
|
|
- prealloc
|
|
- exportloopref
|
|
- staticcheck
|
|
- structcheck
|
|
- stylecheck
|
|
# - typecheck #TODO: enable
|
|
- unconvert
|
|
- unparam
|
|
- unused
|
|
- varcheck
|
|
- nolintlint
|
|
- asciicheck
|
|
# - exhaustive
|
|
- exportloopref
|
|
- gofumpt
|
|
- gomodguard
|
|
# - nestif
|
|
# - nlreturn
|
|
- noctx
|
|
- rowserrcheck
|
|
# - whitespace
|
|
# - wsl
|
|
|
|
issues:
|
|
exclude-rules:
|
|
- path: _test\.go
|
|
linters:
|
|
- gosec
|
|
- linters:
|
|
- lll
|
|
source: "https://"
|
|
max-same-issues: 50
|
|
|
|
linters-settings:
|
|
dogsled:
|
|
max-blank-identifiers: 3
|
|
golint:
|
|
min-confidence: 0
|
|
maligned:
|
|
suggest-new: true
|
|
misspell:
|
|
locale: US
|
|
nolintlint:
|
|
allow-unused: false
|
|
allow-leading-space: true
|
|
require-explanation: false
|
|
require-specific: false
|
|
gofumpt:
|
|
lang-version: "1.17"
|
|
gomodguard:
|
|
blocked:
|
|
versions: # List of blocked module version constraints
|
|
- https://github.com/etcd-io/etcd: # Blocked module with version constraint
|
|
version: ">= 3.4.10 || ~3.3.23" # Version constraint, see https://github.com/Masterminds/semver#basic-comparisons
|
|
reason: "CVE-2020-15114; CVE-2020-15136; CVE-2020-15115" # Reason why the version constraint exists. (Optional)
|
|
- https://github.com/dgrijalva/jwt-go: # Blocked module with version constraint
|
|
version: ">= 4.0.0-preview1" # Version constraint, see https://github.com/Masterminds/semver#basic-comparisons
|
|
reason: "CVE-2020-26160" # Reason why the version constraint exists. (Optional)
|