fee: use array for opcodes

Use less memory and have faster access.

name       old time/op  new time/op  delta
Opcode1-8  22.4ns ± 6%   3.0ns ± 6%  -86.63%  (p=0.000 n=10+10)
This commit is contained in:
Roman Khimov 2020-12-30 00:42:34 +03:00
parent dfc514eda0
commit 3c1325035e
2 changed files with 21 additions and 2 deletions

View file

@ -8,12 +8,12 @@ import (
func Opcode(base int64, opcodes ...opcode.Opcode) int64 {
var result int64
for _, op := range opcodes {
result += coefficients[op]
result += int64(coefficients[op])
}
return result * base
}
var coefficients = map[opcode.Opcode]int64{
var coefficients = [256]uint16{
opcode.PUSHINT8: 1 << 0,
opcode.PUSHINT16: 1 << 0,
opcode.PUSHINT32: 1 << 0,