Performance changes: vendored tezos; separate environments
(Copy !1403 (closed))
We try to explore a few things to reduce the running time of LIGO.
This MR does:
-
It separates the
dummy_environment
in two:dummy_environment
andtest_environment
. Currently,dummy_environment
creates 10 accounts. Adding accounts is costly, it involves generation of keys, setting up delegates/storage costs, etc. With less accounts, LIGO is significantly faster. In most cases, it's enough to initialize the env. with two accounts. Except in test cases, where more accounts are needed. Also, it seems that delegated accounts are significantly more expensive, so only the first account is being delegated. -
It changes vendored tezos from the tezos' repository to a custom one. We point to a branch that:
- Includes changes that before were made in
Dockerfile
/scripts. - It changes
lib_sapling
to preventdefault_root
computation until really needed.
Here are the changes w.r.t. v11.0-rc1 tag of Tezos
Together with previous changes, basic timing of commands seems to show that commands not using the environment/sapling features can work eight times faster, while commands using the env. (such as compiling and typechecking Michelson) can run twice faster.
-
has a changelog entry