go-ethereum/eth/tracers/js
Martin HS e4dbd5f685
eth/tracers/js: avoid compiling js bigint when not needed (#30640)
While looking at some mem profiles from `evm` runs, I noticed that
`goja` compilation of the bigint library was present. The bigint library
compilation happens in a package `init`, whenever the package
`eth/tracers/js` is loaded. This PR changes it to load lazily when
needed.

It becomes slightly faster with this change, and slightly less alloc:y. 

Non-scientific benchmark with 100 executions: 
```
time for i in {1..100}; do ./evm --code 6040 run; done;
 ```

current `master`:

```
real    0m6.634s
user    0m5.213s
sys     0m2.277s
```
Without compiling bigint
```
real    0m5.802s
user    0m4.191s
sys     0m1.965s
```
2024-10-20 19:36:51 +03:00
..
internal/tracers all: fix typos in comments (#28881) 2024-02-05 22:16:32 +01:00
bigint.go eth/tracers: package restructuring (#23857) 2021-11-09 12:09:35 +01:00
goja.go eth/tracers/js: avoid compiling js bigint when not needed (#30640) 2024-10-20 19:36:51 +03:00
tracer_test.go eth/tracers: various fixes (#30540) 2024-10-17 06:51:47 +02:00