Performance considerations#
Wake testing framework is designed to be fast and efficient. However, there are some things to keep in mind to achieve the best performance.
- Always prefer to use Anvil whenever possible.
- Always prefer WebSockets connection over HTTP connection.
- Avoid accessing transaction events (
tx.events
) unless necessary. Consider usingtx.raw_events
instead. - Avoid using accounts other than the pre-generated ones (
chain.accounts
) infrom_
parameters. If you need more accounts than the default number, change the Wake configuration file or launch the development chain with a higher number of accounts and connect to it. - Minimize usage of call traces (
tx.call_trace
) and console logs (tx.console_logs
). These features are useful for debugging, but may slow down the test execution.
Profiling tests#
Every Wake command has the --profile
flag that can be used to profile the test execution. The profiling results are saved in the .wake/wake.prof
file.
Warning
It is important to specify the --profile
flag before the test
command.
It is not recommended to profile the wake test
command in multiprocessing mode (with the -P
option set).
Wake uses cProfile dump_stats method to save the profiling results.