7 Commits

Author SHA1 Message Date
Ivan Boldyrev
1673cdf06c
feat(air-parser)!: optimize Instruction type layout (#767)
Instead of being boxed for each node, the `Instruction` type contains a boxed variable-size elements.  Thus `Instruction` is quite lean, and the allocator deals with variable-sized elements.

Total number of allocations is more or less same, but less space is wasted for unused memory: previously the Instruction's size was 112 bytes in WASM, now it is 16.

It reduces memory consumption on large AIR scripts (heap size decreased from 7.7MiB to 4.625MiB in parser-10000-100, and for the new parser-calls-10000-100 benchmark, it decreased from 5.115MiB to 4.375MiB).

This is a breaking change as the API changes (though the code that navigates the parsed tree generally should work as is).
2023-12-12 19:50:41 +07:00
Ivan Boldyrev
a5b520d6fe
chore(benchmark): clear stale benchmark data (#763)
* chore(benchmark): clear stale benchmark data

Originally, benchmark util merge benchmark data, i.e. only inserted new
data in the benchmark store.  However, sometimes benches disappear, and
incorrect information is stored for them (i.e. AquaVM version which is
per-machine).

However, sometimes this functionality is useful, when you want to add a
new benchmark without running all the others.  For such case,
`aquavm_performance_metergin run --unsafe-merge-results` option is
added.

* Restore the `null` benchmark

* Do text report generation exactly one time

It was regenerated from 0 to N times before, and it is wrong.
2023-12-04 20:26:22 +07:00
Ivan Boldyrev
7428cb39b3
chore(benchmark): restore parser-10000-100 bench (#762)
A benchmark with empty datas that has long AIR code with lot of variable (re-)assignments.
2023-11-30 20:33:41 +07:00
Ivan Boldyrev
2b83ad1755
chore(benchmarks): call-requests and call-results benchmarks (#759) 2023-11-28 00:01:14 +07:00
raftedproc
a8965e04ec
chore(benchmarking): data generators for a set of map-related benchmarks [fixes VM-345] (#735) 2023-11-08 16:22:17 +03:00
Ivan Boldyrev
5b6533bef1
chore(benches): update benchmarks after 1024 stream limit (#728) 2023-10-20 21:00:19 +07:00
Ivan Boldyrev
8a07613027
feat(aquavm-air)!: signature checking (#607) 2023-10-13 22:19:02 +03:00