|
@@ -0,0 +1,307 @@
|
|
|
+# Stack Memory
|
|
|
+
|
|
|
+All notable changes in stack memory usage will be documented in this file.
|
|
|
+
|
|
|
+The changes are calculated by comparing the current results with the last version's results. Increase in usage is shown with 🔴 and decrease is shown with 🟢.
|
|
|
+
|
|
|
+The programs and their tests are located in [/tests/bench](https://github.com/coral-xyz/anchor/tree/master/tests/bench).
|
|
|
+
|
|
|
+> **Note**
|
|
|
+> Results documented in this file are autogenerated. Running the tests will update the current results when necessary, manually editing the results should be avoided.
|
|
|
+
|
|
|
+> **Warning**
|
|
|
+> Results may vary depending on Solana version.
|
|
|
+
|
|
|
+## [Unreleased]
|
|
|
+
|
|
|
+Solana version: 1.16.0
|
|
|
+
|
|
|
+| Instruction | Stack Memory | +/- |
|
|
|
+| ------------------------------ | ------------ | --- |
|
|
|
+| account_info1 | 328 | - |
|
|
|
+| account_info2 | 376 | - |
|
|
|
+| account_info4 | 560 | - |
|
|
|
+| account_info8 | 728 | - |
|
|
|
+| account_empty_init1 | 592 | - |
|
|
|
+| account_empty_init2 | 560 | - |
|
|
|
+| account_empty_init4 | 632 | - |
|
|
|
+| account_empty_init8 | 824 | - |
|
|
|
+| account_empty1 | 320 | - |
|
|
|
+| account_empty2 | 368 | - |
|
|
|
+| account_empty4 | 552 | - |
|
|
|
+| account_empty8 | 728 | - |
|
|
|
+| account_sized_init1 | 600 | - |
|
|
|
+| account_sized_init2 | 552 | - |
|
|
|
+| account_sized_init4 | 664 | - |
|
|
|
+| account_sized_init8 | 888 | - |
|
|
|
+| account_sized1 | 328 | - |
|
|
|
+| account_sized2 | 392 | - |
|
|
|
+| account_sized4 | 568 | - |
|
|
|
+| account_sized8 | 792 | - |
|
|
|
+| account_unsized_init1 | 624 | - |
|
|
|
+| account_unsized_init2 | 584 | - |
|
|
|
+| account_unsized_init4 | 728 | - |
|
|
|
+| account_unsized_init8 | 1,016 | - |
|
|
|
+| account_unsized1 | 344 | - |
|
|
|
+| account_unsized2 | 456 | - |
|
|
|
+| account_unsized4 | 632 | - |
|
|
|
+| account_unsized8 | 920 | - |
|
|
|
+| boxed_account_empty_init1 | 552 | - |
|
|
|
+| boxed_account_empty_init2 | 400 | - |
|
|
|
+| boxed_account_empty_init4 | 432 | - |
|
|
|
+| boxed_account_empty_init8 | 496 | - |
|
|
|
+| boxed_account_empty1 | 320 | - |
|
|
|
+| boxed_account_empty2 | 320 | - |
|
|
|
+| boxed_account_empty4 | 320 | - |
|
|
|
+| boxed_account_empty8 | 336 | - |
|
|
|
+| boxed_account_sized_init1 | 552 | - |
|
|
|
+| boxed_account_sized_init2 | 400 | - |
|
|
|
+| boxed_account_sized_init4 | 432 | - |
|
|
|
+| boxed_account_sized_init8 | 496 | - |
|
|
|
+| boxed_account_sized1 | 320 | - |
|
|
|
+| boxed_account_sized2 | 320 | - |
|
|
|
+| boxed_account_sized4 | 320 | - |
|
|
|
+| boxed_account_sized8 | 336 | - |
|
|
|
+| boxed_account_unsized_init1 | 552 | - |
|
|
|
+| boxed_account_unsized_init2 | 400 | - |
|
|
|
+| boxed_account_unsized_init4 | 432 | - |
|
|
|
+| boxed_account_unsized_init8 | 496 | - |
|
|
|
+| boxed_account_unsized1 | 320 | - |
|
|
|
+| boxed_account_unsized2 | 320 | - |
|
|
|
+| boxed_account_unsized4 | 320 | - |
|
|
|
+| boxed_account_unsized8 | 336 | - |
|
|
|
+| boxed_interface_account_mint1 | 320 | - |
|
|
|
+| boxed_interface_account_mint2 | 320 | - |
|
|
|
+| boxed_interface_account_mint4 | 320 | - |
|
|
|
+| boxed_interface_account_mint8 | 336 | - |
|
|
|
+| boxed_interface_account_token1 | 320 | - |
|
|
|
+| boxed_interface_account_token2 | 320 | - |
|
|
|
+| boxed_interface_account_token4 | 320 | - |
|
|
|
+| boxed_interface_account_token8 | 336 | - |
|
|
|
+| interface_account_mint1 | 504 | - |
|
|
|
+| interface_account_mint2 | 680 | - |
|
|
|
+| interface_account_mint4 | 1,016 | - |
|
|
|
+| interface_account_mint8 | 1,688 | - |
|
|
|
+| interface_account_token1 | 680 | - |
|
|
|
+| interface_account_token2 | 856 | - |
|
|
|
+| interface_account_token4 | 1,368 | - |
|
|
|
+| interface1 | 320 | - |
|
|
|
+| interface2 | 368 | - |
|
|
|
+| interface4 | 552 | - |
|
|
|
+| interface8 | 728 | - |
|
|
|
+| program1 | 320 | - |
|
|
|
+| program2 | 368 | - |
|
|
|
+| program4 | 552 | - |
|
|
|
+| program8 | 728 | - |
|
|
|
+| signer1 | 328 | - |
|
|
|
+| signer2 | 376 | - |
|
|
|
+| signer4 | 560 | - |
|
|
|
+| signer8 | 728 | - |
|
|
|
+| system_account1 | 328 | - |
|
|
|
+| system_account2 | 376 | - |
|
|
|
+| system_account4 | 560 | - |
|
|
|
+| system_account8 | 728 | - |
|
|
|
+| unchecked_account1 | 328 | - |
|
|
|
+| unchecked_account2 | 376 | - |
|
|
|
+| unchecked_account4 | 560 | - |
|
|
|
+| unchecked_account8 | 728 | - |
|
|
|
+
|
|
|
+### Notable changes
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## [0.28.0]
|
|
|
+
|
|
|
+Solana version: 1.16.0
|
|
|
+
|
|
|
+| Instruction | Stack Memory | +/- |
|
|
|
+| ------------------------------ | ------------ | ---------------------- |
|
|
|
+| account_info1 | 328 | 🔴 **+80 (32.26%)** |
|
|
|
+| account_info2 | 376 | 🟢 **-16 (4.08%)** |
|
|
|
+| account_info4 | 560 | 🔴 **+48 (9.38%)** |
|
|
|
+| account_info8 | 728 | 🟢 **-168 (18.75%)** |
|
|
|
+| account_empty_init1 | 592 | 🔴 **+8 (1.37%)** |
|
|
|
+| account_empty_init2 | 560 | 🔴 **+48 (9.38%)** |
|
|
|
+| account_empty_init4 | 632 | 🟢 **-72 (10.23%)** |
|
|
|
+| account_empty_init8 | 824 | 🟢 **-264 (24.26%)** |
|
|
|
+| account_empty1 | 320 | 🔴 **+120 (60.00%)** |
|
|
|
+| account_empty2 | 368 | 🔴 **+24 (6.98%)** |
|
|
|
+| account_empty4 | 552 | 🔴 **+88 (18.97%)** |
|
|
|
+| account_empty8 | 728 | 🟢 **-120 (14.15%)** |
|
|
|
+| account_sized_init1 | 600 | 🔴 **+8 (1.35%)** |
|
|
|
+| account_sized_init2 | 552 | 🔴 **+8 (1.47%)** |
|
|
|
+| account_sized_init4 | 664 | 🟢 **-104 (13.54%)** |
|
|
|
+| account_sized_init8 | 888 | 🟢 **-328 (26.97%)** |
|
|
|
+| account_sized1 | 328 | 🔴 **+128 (64.00%)** |
|
|
|
+| account_sized2 | 392 | 🔴 **+32 (8.89%)** |
|
|
|
+| account_sized4 | 568 | 🔴 **+40 (7.58%)** |
|
|
|
+| account_sized8 | 792 | 🟢 **-184 (18.85%)** |
|
|
|
+| account_unsized_init1 | 624 | 🔴 **+16 (2.63%)** |
|
|
|
+| account_unsized_init2 | 584 | 🟢 **-24 (3.95%)** |
|
|
|
+| account_unsized_init4 | 728 | 🟢 **-168 (18.75%)** |
|
|
|
+| account_unsized_init8 | 1,016 | 🟢 **-456 (30.98%)** |
|
|
|
+| account_unsized1 | 344 | 🔴 **+168 (95.45%)** |
|
|
|
+| account_unsized2 | 456 | 🔴 **+64 (16.33%)** |
|
|
|
+| account_unsized4 | 632 | 🟢 **-24 (3.66%)** |
|
|
|
+| account_unsized8 | 920 | 🟢 **-312 (25.32%)** |
|
|
|
+| boxed_account_empty_init1 | 552 | 🔴 **+8 (1.47%)** |
|
|
|
+| boxed_account_empty_init2 | 400 | 🟢 **-8 (1.96%)** |
|
|
|
+| boxed_account_empty_init4 | 432 | 🔴 **+8 (1.89%)** |
|
|
|
+| boxed_account_empty_init8 | 496 | 🔴 **+40 (8.77%)** |
|
|
|
+| boxed_account_empty1 | 320 | 🔴 **+80 (33.33%)** |
|
|
|
+| boxed_account_empty2 | 320 | 🔴 **+72 (29.03%)** |
|
|
|
+| boxed_account_empty4 | 320 | 🔴 **+40 (14.29%)** |
|
|
|
+| boxed_account_empty8 | 336 | 🔴 **+24 (7.69%)** |
|
|
|
+| boxed_account_sized_init1 | 552 | 🔴 **+8 (1.47%)** |
|
|
|
+| boxed_account_sized_init2 | 400 | 🟢 **-8 (1.96%)** |
|
|
|
+| boxed_account_sized_init4 | 432 | 🔴 **+8 (1.89%)** |
|
|
|
+| boxed_account_sized_init8 | 496 | 🔴 **+40 (8.77%)** |
|
|
|
+| boxed_account_sized1 | 320 | 🔴 **+80 (33.33%)** |
|
|
|
+| boxed_account_sized2 | 320 | 🔴 **+72 (29.03%)** |
|
|
|
+| boxed_account_sized4 | 320 | 🔴 **+40 (14.29%)** |
|
|
|
+| boxed_account_sized8 | 336 | 🔴 **+24 (7.69%)** |
|
|
|
+| boxed_account_unsized_init1 | 552 | 🔴 **+8 (1.47%)** |
|
|
|
+| boxed_account_unsized_init2 | 400 | 🟢 **-8 (1.96%)** |
|
|
|
+| boxed_account_unsized_init4 | 432 | 🔴 **+8 (1.89%)** |
|
|
|
+| boxed_account_unsized_init8 | 496 | 🔴 **+40 (8.77%)** |
|
|
|
+| boxed_account_unsized1 | 320 | 🔴 **+72 (29.03%)** |
|
|
|
+| boxed_account_unsized2 | 320 | 🔴 **+72 (29.03%)** |
|
|
|
+| boxed_account_unsized4 | 320 | 🔴 **+40 (14.29%)** |
|
|
|
+| boxed_account_unsized8 | 336 | 🔴 **+24 (7.69%)** |
|
|
|
+| boxed_interface_account_mint1 | 320 | 🔴 **+80 (33.33%)** |
|
|
|
+| boxed_interface_account_mint2 | 320 | 🔴 **+72 (29.03%)** |
|
|
|
+| boxed_interface_account_mint4 | 320 | 🔴 **+40 (14.29%)** |
|
|
|
+| boxed_interface_account_mint8 | 336 | 🔴 **+24 (7.69%)** |
|
|
|
+| boxed_interface_account_token1 | 320 | 🔴 **+80 (33.33%)** |
|
|
|
+| boxed_interface_account_token2 | 320 | 🔴 **+72 (29.03%)** |
|
|
|
+| boxed_interface_account_token4 | 320 | 🔴 **+40 (14.29%)** |
|
|
|
+| boxed_interface_account_token8 | 336 | 🔴 **+24 (7.69%)** |
|
|
|
+| interface_account_mint1 | 504 | 🔴 **+296 (142.31%)** |
|
|
|
+| interface_account_mint2 | 680 | 🟢 **-72 (9.57%)** |
|
|
|
+| interface_account_mint4 | 1,016 | 🟢 **-408 (28.65%)** |
|
|
|
+| interface_account_mint8 | 1,688 | 🟢 **-1,080 (39.02%)** |
|
|
|
+| interface_account_token1 | 680 | 🔴 **+416 (157.58%)** |
|
|
|
+| interface_account_token2 | 856 | 🟢 **-248 (22.46%)** |
|
|
|
+| interface_account_token4 | 1,368 | 🟢 **-760 (35.71%)** |
|
|
|
+| interface1 | 320 | 🔴 **+120 (60.00%)** |
|
|
|
+| interface2 | 368 | 🔴 **+24 (6.98%)** |
|
|
|
+| interface4 | 552 | 🔴 **+88 (18.97%)** |
|
|
|
+| interface8 | 728 | 🟢 **-120 (14.15%)** |
|
|
|
+| program1 | 320 | 🔴 **+120 (60.00%)** |
|
|
|
+| program2 | 368 | 🔴 **+24 (6.98%)** |
|
|
|
+| program4 | 552 | 🔴 **+88 (18.97%)** |
|
|
|
+| program8 | 728 | 🟢 **-120 (14.15%)** |
|
|
|
+| signer1 | 328 | 🔴 **+80 (32.26%)** |
|
|
|
+| signer2 | 376 | 🟢 **-16 (4.08%)** |
|
|
|
+| signer4 | 560 | 🔴 **+48 (9.38%)** |
|
|
|
+| signer8 | 728 | 🟢 **-168 (18.75%)** |
|
|
|
+| system_account1 | 328 | 🔴 **+80 (32.26%)** |
|
|
|
+| system_account2 | 376 | 🟢 **-16 (4.08%)** |
|
|
|
+| system_account4 | 560 | 🔴 **+48 (9.38%)** |
|
|
|
+| system_account8 | 728 | 🟢 **-168 (18.75%)** |
|
|
|
+| unchecked_account1 | 328 | 🔴 **+80 (32.26%)** |
|
|
|
+| unchecked_account2 | 376 | 🟢 **-16 (4.08%)** |
|
|
|
+| unchecked_account4 | 560 | 🔴 **+48 (9.38%)** |
|
|
|
+| unchecked_account8 | 728 | 🟢 **-168 (18.75%)** |
|
|
|
+
|
|
|
+### Notable changes
|
|
|
+
|
|
|
+- Upgrading Solana to `1.16`. The difference in stack memory usage between `0.27.0` and `0.28.0` is the direct result of upgrading Solana version(both build tools and crates) ([#2512](https://github.com/coral-xyz/anchor/pull/2512)).
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## [0.27.0]
|
|
|
+
|
|
|
+Solana version: 1.14.16
|
|
|
+
|
|
|
+| Instruction | Stack Memory | +/- |
|
|
|
+| ------------------------------ | ------------ | --- |
|
|
|
+| account_info1 | 248 | N/A |
|
|
|
+| account_info2 | 392 | N/A |
|
|
|
+| account_info4 | 512 | N/A |
|
|
|
+| account_info8 | 896 | N/A |
|
|
|
+| account_empty_init1 | 584 | N/A |
|
|
|
+| account_empty_init2 | 512 | N/A |
|
|
|
+| account_empty_init4 | 704 | N/A |
|
|
|
+| account_empty_init8 | 1,088 | N/A |
|
|
|
+| account_empty1 | 200 | N/A |
|
|
|
+| account_empty2 | 344 | N/A |
|
|
|
+| account_empty4 | 464 | N/A |
|
|
|
+| account_empty8 | 848 | N/A |
|
|
|
+| account_sized_init1 | 592 | N/A |
|
|
|
+| account_sized_init2 | 544 | N/A |
|
|
|
+| account_sized_init4 | 768 | N/A |
|
|
|
+| account_sized_init8 | 1,216 | N/A |
|
|
|
+| account_sized1 | 200 | N/A |
|
|
|
+| account_sized2 | 360 | N/A |
|
|
|
+| account_sized4 | 528 | N/A |
|
|
|
+| account_sized8 | 976 | N/A |
|
|
|
+| account_unsized_init1 | 608 | N/A |
|
|
|
+| account_unsized_init2 | 608 | N/A |
|
|
|
+| account_unsized_init4 | 896 | N/A |
|
|
|
+| account_unsized_init8 | 1,472 | N/A |
|
|
|
+| account_unsized1 | 176 | N/A |
|
|
|
+| account_unsized2 | 392 | N/A |
|
|
|
+| account_unsized4 | 656 | N/A |
|
|
|
+| account_unsized8 | 1,232 | N/A |
|
|
|
+| boxed_account_empty_init1 | 544 | N/A |
|
|
|
+| boxed_account_empty_init2 | 408 | N/A |
|
|
|
+| boxed_account_empty_init4 | 424 | N/A |
|
|
|
+| boxed_account_empty_init8 | 456 | N/A |
|
|
|
+| boxed_account_empty1 | 240 | N/A |
|
|
|
+| boxed_account_empty2 | 248 | N/A |
|
|
|
+| boxed_account_empty4 | 280 | N/A |
|
|
|
+| boxed_account_empty8 | 312 | N/A |
|
|
|
+| boxed_account_sized_init1 | 544 | N/A |
|
|
|
+| boxed_account_sized_init2 | 408 | N/A |
|
|
|
+| boxed_account_sized_init4 | 424 | N/A |
|
|
|
+| boxed_account_sized_init8 | 456 | N/A |
|
|
|
+| boxed_account_sized1 | 240 | N/A |
|
|
|
+| boxed_account_sized2 | 248 | N/A |
|
|
|
+| boxed_account_sized4 | 280 | N/A |
|
|
|
+| boxed_account_sized8 | 312 | N/A |
|
|
|
+| boxed_account_unsized_init1 | 544 | N/A |
|
|
|
+| boxed_account_unsized_init2 | 408 | N/A |
|
|
|
+| boxed_account_unsized_init4 | 424 | N/A |
|
|
|
+| boxed_account_unsized_init8 | 456 | N/A |
|
|
|
+| boxed_account_unsized1 | 248 | N/A |
|
|
|
+| boxed_account_unsized2 | 248 | N/A |
|
|
|
+| boxed_account_unsized4 | 280 | N/A |
|
|
|
+| boxed_account_unsized8 | 312 | N/A |
|
|
|
+| boxed_interface_account_mint1 | 240 | N/A |
|
|
|
+| boxed_interface_account_mint2 | 248 | N/A |
|
|
|
+| boxed_interface_account_mint4 | 280 | N/A |
|
|
|
+| boxed_interface_account_mint8 | 312 | N/A |
|
|
|
+| boxed_interface_account_token1 | 240 | N/A |
|
|
|
+| boxed_interface_account_token2 | 248 | N/A |
|
|
|
+| boxed_interface_account_token4 | 280 | N/A |
|
|
|
+| boxed_interface_account_token8 | 312 | N/A |
|
|
|
+| interface_account_mint1 | 208 | N/A |
|
|
|
+| interface_account_mint2 | 752 | N/A |
|
|
|
+| interface_account_mint4 | 1,424 | N/A |
|
|
|
+| interface_account_mint8 | 2,768 | N/A |
|
|
|
+| interface_account_token1 | 264 | N/A |
|
|
|
+| interface_account_token2 | 1,104 | N/A |
|
|
|
+| interface_account_token4 | 2,128 | N/A |
|
|
|
+| interface1 | 200 | N/A |
|
|
|
+| interface2 | 344 | N/A |
|
|
|
+| interface4 | 464 | N/A |
|
|
|
+| interface8 | 848 | N/A |
|
|
|
+| program1 | 200 | N/A |
|
|
|
+| program2 | 344 | N/A |
|
|
|
+| program4 | 464 | N/A |
|
|
|
+| program8 | 848 | N/A |
|
|
|
+| signer1 | 248 | N/A |
|
|
|
+| signer2 | 392 | N/A |
|
|
|
+| signer4 | 512 | N/A |
|
|
|
+| signer8 | 896 | N/A |
|
|
|
+| system_account1 | 248 | N/A |
|
|
|
+| system_account2 | 392 | N/A |
|
|
|
+| system_account4 | 512 | N/A |
|
|
|
+| system_account8 | 896 | N/A |
|
|
|
+| unchecked_account1 | 248 | N/A |
|
|
|
+| unchecked_account2 | 392 | N/A |
|
|
|
+| unchecked_account4 | 512 | N/A |
|
|
|
+| unchecked_account8 | 896 | N/A |
|
|
|
+
|
|
|
+---
|