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_eventsinstead. - 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.