Skip to content

Performance changes: vendored tezos; separate environments

E. Rivas requested to merge er433/vendor/tezos-ligo into dev

(Copy !1403 (closed))

We try to explore a few things to reduce the running time of LIGO.

This MR does:

  1. It separates the dummy_environment in two: dummy_environment and test_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.

  2. 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 prevent default_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
Edited by E. Rivas

Merge request reports