# 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: 2.1.0 | Instruction | Stack Memory | - | | ------------------------------ | ------------ | --- | | account_info1 | 46 | - | | account_info2 | 80 | - | | account_info4 | 80 | - | | account_info8 | 80 | - | | account_empty_init1 | 88 | - | | account_empty_init2 | 88 | - | | account_empty_init4 | 88 | - | | account_empty_init8 | 88 | - | | account_empty1 | 88 | - | | account_empty2 | 88 | - | | account_empty4 | 88 | - | | account_empty8 | 88 | - | | account_sized_init1 | 88 | - | | account_sized_init2 | 88 | - | | account_sized_init4 | 88 | - | | account_sized_init8 | 88 | - | | account_sized1 | 88 | - | | account_sized2 | 88 | - | | account_sized4 | 88 | - | | account_sized8 | 88 | - | | account_unsized_init1 | 88 | - | | account_unsized_init2 | 88 | - | | account_unsized_init4 | 88 | - | | account_unsized_init8 | 88 | - | | account_unsized1 | 88 | - | | account_unsized2 | 88 | - | | account_unsized4 | 88 | - | | account_unsized8 | 88 | - | | boxed_account_empty_init1 | 88 | - | | boxed_account_empty_init2 | 88 | - | | boxed_account_empty_init4 | 88 | - | | boxed_account_empty_init8 | 88 | - | | boxed_account_empty1 | 88 | - | | boxed_account_empty2 | 88 | - | | boxed_account_empty4 | 88 | - | | boxed_account_empty8 | 88 | - | | boxed_account_sized_init1 | 88 | - | | boxed_account_sized_init2 | 88 | - | | boxed_account_sized_init4 | 88 | - | | boxed_account_sized_init8 | 88 | - | | boxed_account_sized1 | 88 | - | | boxed_account_sized2 | 88 | - | | boxed_account_sized4 | 88 | - | | boxed_account_sized8 | 88 | - | | boxed_account_unsized_init1 | 88 | - | | boxed_account_unsized_init2 | 88 | - | | boxed_account_unsized_init4 | 88 | - | | boxed_account_unsized_init8 | 88 | - | | boxed_account_unsized1 | 88 | - | | boxed_account_unsized2 | 88 | - | | boxed_account_unsized4 | 88 | - | | boxed_account_unsized8 | 88 | - | | boxed_interface_account_mint1 | 88 | - | | boxed_interface_account_mint2 | 88 | - | | boxed_interface_account_mint4 | 88 | - | | boxed_interface_account_mint8 | 88 | - | | boxed_interface_account_token1 | 88 | - | | boxed_interface_account_token2 | 88 | - | | boxed_interface_account_token4 | 88 | - | | boxed_interface_account_token8 | 88 | - | | interface_account_mint1 | 88 | - | | interface_account_mint2 | 88 | - | | interface_account_mint4 | 88 | - | | interface_account_mint8 | 88 | - | | interface_account_token1 | 80 | - | | interface_account_token2 | 80 | - | | interface_account_token4 | 80 | - | | interface1 | 88 | - | | interface2 | 88 | - | | interface4 | 88 | - | | interface8 | 88 | - | | program1 | 88 | - | | program2 | 88 | - | | program4 | 88 | - | | program8 | 88 | - | | signer1 | 88 | - | | signer2 | 88 | - | | signer4 | 88 | - | | signer8 | 88 | - | | system_account1 | 88 | - | | system_account2 | 88 | - | | system_account4 | 88 | - | | system_account8 | 88 | - | | unchecked_account1 | 88 | - | | unchecked_account2 | 88 | - | | unchecked_account4 | 88 | - | | unchecked_account8 | 88 | - | ### Notable changes --- ## [0.31.1] Solana version: 2.1.0 | Instruction | Stack Memory | - | | ------------------------------ | ------------ | --- | | account_info1 | 46 | - | | account_info2 | 80 | - | | account_info4 | 80 | - | | account_info8 | 80 | - | | account_empty_init1 | 88 | - | | account_empty_init2 | 88 | - | | account_empty_init4 | 88 | - | | account_empty_init8 | 88 | - | | account_empty1 | 88 | - | | account_empty2 | 88 | - | | account_empty4 | 88 | - | | account_empty8 | 88 | - | | account_sized_init1 | 88 | - | | account_sized_init2 | 88 | - | | account_sized_init4 | 88 | - | | account_sized_init8 | 88 | - | | account_sized1 | 88 | - | | account_sized2 | 88 | - | | account_sized4 | 88 | - | | account_sized8 | 88 | - | | account_unsized_init1 | 88 | - | | account_unsized_init2 | 88 | - | | account_unsized_init4 | 88 | - | | account_unsized_init8 | 88 | - | | account_unsized1 | 88 | - | | account_unsized2 | 88 | - | | account_unsized4 | 88 | - | | account_unsized8 | 88 | - | | boxed_account_empty_init1 | 88 | - | | boxed_account_empty_init2 | 88 | - | | boxed_account_empty_init4 | 88 | - | | boxed_account_empty_init8 | 88 | - | | boxed_account_empty1 | 88 | - | | boxed_account_empty2 | 88 | - | | boxed_account_empty4 | 88 | - | | boxed_account_empty8 | 88 | - | | boxed_account_sized_init1 | 88 | - | | boxed_account_sized_init2 | 88 | - | | boxed_account_sized_init4 | 88 | - | | boxed_account_sized_init8 | 88 | - | | boxed_account_sized1 | 88 | - | | boxed_account_sized2 | 88 | - | | boxed_account_sized4 | 88 | - | | boxed_account_sized8 | 88 | - | | boxed_account_unsized_init1 | 88 | - | | boxed_account_unsized_init2 | 88 | - | | boxed_account_unsized_init4 | 88 | - | | boxed_account_unsized_init8 | 88 | - | | boxed_account_unsized1 | 88 | - | | boxed_account_unsized2 | 88 | - | | boxed_account_unsized4 | 88 | - | | boxed_account_unsized8 | 88 | - | | boxed_interface_account_mint1 | 88 | - | | boxed_interface_account_mint2 | 88 | - | | boxed_interface_account_mint4 | 88 | - | | boxed_interface_account_mint8 | 88 | - | | boxed_interface_account_token1 | 88 | - | | boxed_interface_account_token2 | 88 | - | | boxed_interface_account_token4 | 88 | - | | boxed_interface_account_token8 | 88 | - | | interface_account_mint1 | 88 | - | | interface_account_mint2 | 88 | - | | interface_account_mint4 | 88 | - | | interface_account_mint8 | 88 | - | | interface_account_token1 | 80 | - | | interface_account_token2 | 80 | - | | interface_account_token4 | 80 | - | | interface1 | 88 | - | | interface2 | 88 | - | | interface4 | 88 | - | | interface8 | 88 | - | | program1 | 88 | - | | program2 | 88 | - | | program4 | 88 | - | | program8 | 88 | - | | signer1 | 88 | - | | signer2 | 88 | - | | signer4 | 88 | - | | signer8 | 88 | - | | system_account1 | 88 | - | | system_account2 | 88 | - | | system_account4 | 88 | - | | system_account8 | 88 | - | | unchecked_account1 | 88 | - | | unchecked_account2 | 88 | - | | unchecked_account4 | 88 | - | | unchecked_account8 | 88 | - | ### Notable changes --- ## [0.31.0] Solana version: 2.1.0 | Instruction | Stack Memory | - | | ------------------------------ | ------------ | -------------------- | | account_info1 | 46 | 🟢 **-98 (68.06%)** | | account_info2 | 80 | 🟢 **-64 (44.44%)** | | account_info4 | 80 | 🟢 **-64 (44.44%)** | | account_info8 | 80 | 🟢 **-64 (44.44%)** | | account_empty_init1 | 88 | 🟢 **-56 (38.89%)** | | account_empty_init2 | 88 | 🟢 **-56 (38.89%)** | | account_empty_init4 | 88 | 🟢 **-104 (54.17%)** | | account_empty_init8 | 88 | 🟢 **-136 (60.71%)** | | account_empty1 | 88 | 🟢 **-56 (38.89%)** | | account_empty2 | 88 | 🟢 **-56 (38.89%)** | | account_empty4 | 88 | 🟢 **-56 (38.89%)** | | account_empty8 | 88 | 🟢 **-56 (38.89%)** | | account_sized_init1 | 88 | 🟢 **-88 (50.00%)** | | account_sized_init2 | 88 | 🟢 **-104 (54.17%)** | | account_sized_init4 | 88 | 🟢 **-136 (60.71%)** | | account_sized_init8 | 88 | 🟢 **-200 (69.44%)** | | account_sized1 | 88 | 🟢 **-56 (38.89%)** | | account_sized2 | 88 | 🟢 **-56 (38.89%)** | | account_sized4 | 88 | 🟢 **-56 (38.89%)** | | account_sized8 | 88 | 🟢 **-56 (38.89%)** | | account_unsized_init1 | 88 | 🟢 **-104 (54.17%)** | | account_unsized_init2 | 88 | 🟢 **-136 (60.71%)** | | account_unsized_init4 | 88 | 🟢 **-200 (69.44%)** | | account_unsized_init8 | 88 | 🟢 **-328 (78.85%)** | | account_unsized1 | 88 | 🟢 **-56 (38.89%)** | | account_unsized2 | 88 | 🟢 **-56 (38.89%)** | | account_unsized4 | 88 | 🟢 **-56 (38.89%)** | | account_unsized8 | 88 | 🟢 **-56 (38.89%)** | | boxed_account_empty_init1 | 88 | 🟢 **-56 (38.89%)** | | boxed_account_empty_init2 | 88 | 🟢 **-56 (38.89%)** | | boxed_account_empty_init4 | 88 | 🟢 **-104 (54.17%)** | | boxed_account_empty_init8 | 88 | 🟢 **-136 (60.71%)** | | boxed_account_empty1 | 88 | 🟢 **-56 (38.89%)** | | boxed_account_empty2 | 88 | 🟢 **-56 (38.89%)** | | boxed_account_empty4 | 88 | 🟢 **-56 (38.89%)** | | boxed_account_empty8 | 88 | 🟢 **-56 (38.89%)** | | boxed_account_sized_init1 | 88 | 🟢 **-56 (38.89%)** | | boxed_account_sized_init2 | 88 | 🟢 **-56 (38.89%)** | | boxed_account_sized_init4 | 88 | 🟢 **-104 (54.17%)** | | boxed_account_sized_init8 | 88 | 🟢 **-136 (60.71%)** | | boxed_account_sized1 | 88 | 🟢 **-56 (38.89%)** | | boxed_account_sized2 | 88 | 🟢 **-56 (38.89%)** | | boxed_account_sized4 | 88 | 🟢 **-56 (38.89%)** | | boxed_account_sized8 | 88 | 🟢 **-56 (38.89%)** | | boxed_account_unsized_init1 | 88 | 🟢 **-56 (38.89%)** | | boxed_account_unsized_init2 | 88 | 🟢 **-56 (38.89%)** | | boxed_account_unsized_init4 | 88 | 🟢 **-104 (54.17%)** | | boxed_account_unsized_init8 | 88 | 🟢 **-136 (60.71%)** | | boxed_account_unsized1 | 88 | 🟢 **-56 (38.89%)** | | boxed_account_unsized2 | 88 | 🟢 **-56 (38.89%)** | | boxed_account_unsized4 | 88 | 🟢 **-56 (38.89%)** | | boxed_account_unsized8 | 88 | 🟢 **-56 (38.89%)** | | boxed_interface_account_mint1 | 88 | 🟢 **-56 (38.89%)** | | boxed_interface_account_mint2 | 88 | 🟢 **-56 (38.89%)** | | boxed_interface_account_mint4 | 88 | 🟢 **-56 (38.89%)** | | boxed_interface_account_mint8 | 88 | 🟢 **-56 (38.89%)** | | boxed_interface_account_token1 | 88 | 🟢 **-56 (38.89%)** | | boxed_interface_account_token2 | 88 | 🟢 **-56 (38.89%)** | | boxed_interface_account_token4 | 88 | 🟢 **-56 (38.89%)** | | boxed_interface_account_token8 | 88 | 🟢 **-56 (38.89%)** | | interface_account_mint1 | 88 | 🟢 **-56 (38.89%)** | | interface_account_mint2 | 88 | 🟢 **-56 (38.89%)** | | interface_account_mint4 | 88 | 🟢 **-56 (38.89%)** | | interface_account_mint8 | 88 | 🟢 **-56 (38.89%)** | | interface_account_token1 | 80 | 🟢 **-64 (44.44%)** | | interface_account_token2 | 80 | 🟢 **-64 (44.44%)** | | interface_account_token4 | 80 | 🟢 **-64 (44.44%)** | | interface1 | 88 | 🟢 **-56 (38.89%)** | | interface2 | 88 | 🟢 **-56 (38.89%)** | | interface4 | 88 | 🟢 **-56 (38.89%)** | | interface8 | 88 | 🟢 **-56 (38.89%)** | | program1 | 88 | 🟢 **-56 (38.89%)** | | program2 | 88 | 🟢 **-56 (38.89%)** | | program4 | 88 | 🟢 **-56 (38.89%)** | | program8 | 88 | 🟢 **-56 (38.89%)** | | signer1 | 88 | 🟢 **-56 (38.89%)** | | signer2 | 88 | 🟢 **-56 (38.89%)** | | signer4 | 88 | 🟢 **-56 (38.89%)** | | signer8 | 88 | 🟢 **-56 (38.89%)** | | system_account1 | 88 | 🟢 **-56 (38.89%)** | | system_account2 | 88 | 🟢 **-56 (38.89%)** | | system_account4 | 88 | 🟢 **-56 (38.89%)** | | system_account8 | 88 | 🟢 **-56 (38.89%)** | | unchecked_account1 | 88 | 🟢 **-56 (38.89%)** | | unchecked_account2 | 88 | 🟢 **-56 (38.89%)** | | unchecked_account4 | 88 | 🟢 **-56 (38.89%)** | | unchecked_account8 | 88 | 🟢 **-56 (38.89%)** | ### Notable changes - lang: Use closures for `init` constraints to reduce the stack usage of `try_accounts` ([#2939](https://github.com/coral-xyz/anchor/pull/2939)). --- ## [0.30.1] Solana version: 1.18.17 | Instruction | Stack Memory | - | | ------------------------------ | ------------ | --- | | account_info1 | 144 | - | | account_info2 | 144 | - | | account_info4 | 144 | - | | account_info8 | 144 | - | | account_empty_init1 | 144 | - | | account_empty_init2 | 144 | - | | account_empty_init4 | 192 | - | | account_empty_init8 | 224 | - | | account_empty1 | 144 | - | | account_empty2 | 144 | - | | account_empty4 | 144 | - | | account_empty8 | 144 | - | | account_sized_init1 | 176 | - | | account_sized_init2 | 192 | - | | account_sized_init4 | 224 | - | | account_sized_init8 | 288 | - | | account_sized1 | 144 | - | | account_sized2 | 144 | - | | account_sized4 | 144 | - | | account_sized8 | 144 | - | | account_unsized_init1 | 192 | - | | account_unsized_init2 | 224 | - | | account_unsized_init4 | 288 | - | | account_unsized_init8 | 416 | - | | account_unsized1 | 144 | - | | account_unsized2 | 144 | - | | account_unsized4 | 144 | - | | account_unsized8 | 144 | - | | boxed_account_empty_init1 | 144 | - | | boxed_account_empty_init2 | 144 | - | | boxed_account_empty_init4 | 192 | - | | boxed_account_empty_init8 | 224 | - | | boxed_account_empty1 | 144 | - | | boxed_account_empty2 | 144 | - | | boxed_account_empty4 | 144 | - | | boxed_account_empty8 | 144 | - | | boxed_account_sized_init1 | 144 | - | | boxed_account_sized_init2 | 144 | - | | boxed_account_sized_init4 | 192 | - | | boxed_account_sized_init8 | 224 | - | | boxed_account_sized1 | 144 | - | | boxed_account_sized2 | 144 | - | | boxed_account_sized4 | 144 | - | | boxed_account_sized8 | 144 | - | | boxed_account_unsized_init1 | 144 | - | | boxed_account_unsized_init2 | 144 | - | | boxed_account_unsized_init4 | 192 | - | | boxed_account_unsized_init8 | 224 | - | | boxed_account_unsized1 | 144 | - | | boxed_account_unsized2 | 144 | - | | boxed_account_unsized4 | 144 | - | | boxed_account_unsized8 | 144 | - | | boxed_interface_account_mint1 | 144 | - | | boxed_interface_account_mint2 | 144 | - | | boxed_interface_account_mint4 | 144 | - | | boxed_interface_account_mint8 | 144 | - | | boxed_interface_account_token1 | 144 | - | | boxed_interface_account_token2 | 144 | - | | boxed_interface_account_token4 | 144 | - | | boxed_interface_account_token8 | 144 | - | | interface_account_mint1 | 144 | - | | interface_account_mint2 | 144 | - | | interface_account_mint4 | 144 | - | | interface_account_mint8 | 144 | - | | interface_account_token1 | 144 | - | | interface_account_token2 | 144 | - | | interface_account_token4 | 144 | - | | interface1 | 144 | - | | interface2 | 144 | - | | interface4 | 144 | - | | interface8 | 144 | - | | program1 | 144 | - | | program2 | 144 | - | | program4 | 144 | - | | program8 | 144 | - | | signer1 | 144 | - | | signer2 | 144 | - | | signer4 | 144 | - | | signer8 | 144 | - | | system_account1 | 144 | - | | system_account2 | 144 | - | | system_account4 | 144 | - | | system_account8 | 144 | - | | unchecked_account1 | 144 | - | | unchecked_account2 | 144 | - | | unchecked_account4 | 144 | - | | unchecked_account8 | 144 | - | ### Notable changes --- ## [0.30.0] Solana version: 1.18.8 | Instruction | Stack Memory | - | | ------------------------------ | ------------ | ------------------- | | account_info1 | 144 | 🔴 **+16 (12.50%)** | | account_info2 | 144 | 🔴 **+16 (12.50%)** | | account_info4 | 144 | 🔴 **+16 (12.50%)** | | account_info8 | 144 | 🔴 **+16 (12.50%)** | | account_empty_init1 | 144 | 🟢 **-32 (18.18%)** | | account_empty_init2 | 144 | 🟢 **-64 (30.77%)** | | account_empty_init4 | 192 | 🟢 **-16 (7.69%)** | | account_empty_init8 | 224 | 🟢 **-16 (6.67%)** | | account_empty1 | 144 | 🔴 **+16 (12.50%)** | | account_empty2 | 144 | 🔴 **+16 (12.50%)** | | account_empty4 | 144 | 🔴 **+16 (12.50%)** | | account_empty8 | 144 | 🔴 **+16 (12.50%)** | | account_sized_init1 | 176 | 🟢 **-32 (15.38%)** | | account_sized_init2 | 192 | 🟢 **-64 (25.00%)** | | account_sized_init4 | 224 | 🟢 **-16 (6.67%)** | | account_sized_init8 | 288 | 🟢 **-16 (5.26%)** | | account_sized1 | 144 | 🔴 **+16 (12.50%)** | | account_sized2 | 144 | 🔴 **+16 (12.50%)** | | account_sized4 | 144 | 🔴 **+16 (12.50%)** | | account_sized8 | 144 | 🔴 **+16 (12.50%)** | | account_unsized_init1 | 192 | 🟢 **-32 (14.29%)** | | account_unsized_init2 | 224 | 🟢 **-72 (24.32%)** | | account_unsized_init4 | 288 | 🟢 **-16 (5.26%)** | | account_unsized_init8 | 416 | 🟢 **-16 (3.70%)** | | account_unsized1 | 144 | 🔴 **+16 (12.50%)** | | account_unsized2 | 144 | - | | account_unsized4 | 144 | 🔴 **+16 (12.50%)** | | account_unsized8 | 144 | 🔴 **+16 (12.50%)** | | boxed_account_empty_init1 | 144 | 🟢 **-32 (18.18%)** | | boxed_account_empty_init2 | 144 | 🟢 **-64 (30.77%)** | | boxed_account_empty_init4 | 192 | 🟢 **-16 (7.69%)** | | boxed_account_empty_init8 | 224 | 🟢 **-16 (6.67%)** | | boxed_account_empty1 | 144 | 🔴 **+16 (12.50%)** | | boxed_account_empty2 | 144 | 🔴 **+16 (12.50%)** | | boxed_account_empty4 | 144 | - | | boxed_account_empty8 | 144 | - | | boxed_account_sized_init1 | 144 | 🟢 **-32 (18.18%)** | | boxed_account_sized_init2 | 144 | 🟢 **-64 (30.77%)** | | boxed_account_sized_init4 | 192 | 🟢 **-16 (7.69%)** | | boxed_account_sized_init8 | 224 | 🟢 **-16 (6.67%)** | | boxed_account_sized1 | 144 | 🔴 **+16 (12.50%)** | | boxed_account_sized2 | 144 | 🔴 **+16 (12.50%)** | | boxed_account_sized4 | 144 | - | | boxed_account_sized8 | 144 | - | | boxed_account_unsized_init1 | 144 | 🟢 **-32 (18.18%)** | | boxed_account_unsized_init2 | 144 | 🟢 **-64 (30.77%)** | | boxed_account_unsized_init4 | 192 | 🟢 **-16 (7.69%)** | | boxed_account_unsized_init8 | 224 | 🟢 **-16 (6.67%)** | | boxed_account_unsized1 | 144 | 🔴 **+16 (12.50%)** | | boxed_account_unsized2 | 144 | - | | boxed_account_unsized4 | 144 | 🔴 **+16 (12.50%)** | | boxed_account_unsized8 | 144 | 🔴 **+16 (12.50%)** | | boxed_interface_account_mint1 | 144 | 🔴 **+16 (12.50%)** | | boxed_interface_account_mint2 | 144 | 🔴 **+16 (12.50%)** | | boxed_interface_account_mint4 | 144 | - | | boxed_interface_account_mint8 | 144 | - | | boxed_interface_account_token1 | 144 | 🔴 **+16 (12.50%)** | | boxed_interface_account_token2 | 144 | 🔴 **+16 (12.50%)** | | boxed_interface_account_token4 | 144 | - | | boxed_interface_account_token8 | 144 | - | | interface_account_mint1 | 144 | 🔴 **+16 (12.50%)** | | interface_account_mint2 | 144 | 🔴 **+16 (12.50%)** | | interface_account_mint4 | 144 | 🔴 **+16 (12.50%)** | | interface_account_mint8 | 144 | 🔴 **+16 (12.50%)** | | interface_account_token1 | 144 | 🔴 **+16 (12.50%)** | | interface_account_token2 | 144 | 🔴 **+16 (12.50%)** | | interface_account_token4 | 144 | 🔴 **+16 (12.50%)** | | interface1 | 144 | 🔴 **+16 (12.50%)** | | interface2 | 144 | 🔴 **+16 (12.50%)** | | interface4 | 144 | 🔴 **+16 (12.50%)** | | interface8 | 144 | 🔴 **+16 (12.50%)** | | program1 | 144 | 🔴 **+16 (12.50%)** | | program2 | 144 | 🔴 **+16 (12.50%)** | | program4 | 144 | 🔴 **+16 (12.50%)** | | program8 | 144 | 🔴 **+16 (12.50%)** | | signer1 | 144 | 🔴 **+16 (12.50%)** | | signer2 | 144 | 🔴 **+16 (12.50%)** | | signer4 | 144 | 🔴 **+16 (12.50%)** | | signer8 | 144 | 🔴 **+16 (12.50%)** | | system_account1 | 144 | 🔴 **+16 (12.50%)** | | system_account2 | 144 | 🔴 **+16 (12.50%)** | | system_account4 | 144 | 🔴 **+16 (12.50%)** | | system_account8 | 144 | 🔴 **+16 (12.50%)** | | unchecked_account1 | 144 | 🔴 **+16 (12.50%)** | | unchecked_account2 | 144 | 🔴 **+16 (12.50%)** | | unchecked_account4 | 144 | 🔴 **+16 (12.50%)** | | unchecked_account8 | 144 | 🔴 **+16 (12.50%)** | ### Notable changes - Upgrade Solana to `1.18.8` ([#2867](https://github.com/coral-xyz/anchor/pull/2867)). --- ## [0.29.0] Solana version: 1.17.0 | Instruction | Stack Memory | +/- | | ------------------------------ | ------------ | ---------------------- | | account_info1 | 128 | 🟢 **-200 (60.98%)** | | account_info2 | 128 | 🟢 **-248 (65.96%)** | | account_info4 | 128 | 🟢 **-432 (77.14%)** | | account_info8 | 128 | 🟢 **-600 (82.42%)** | | account_empty_init1 | 176 | 🟢 **-416 (70.27%)** | | account_empty_init2 | 208 | 🟢 **-352 (62.86%)** | | account_empty_init4 | 208 | 🟢 **-424 (67.09%)** | | account_empty_init8 | 240 | 🟢 **-584 (70.87%)** | | account_empty1 | 128 | 🟢 **-192 (60.00%)** | | account_empty2 | 128 | 🟢 **-240 (65.22%)** | | account_empty4 | 128 | 🟢 **-424 (76.81%)** | | account_empty8 | 128 | 🟢 **-600 (82.42%)** | | account_sized_init1 | 208 | 🟢 **-392 (65.33%)** | | account_sized_init2 | 256 | 🟢 **-296 (53.62%)** | | account_sized_init4 | 240 | 🟢 **-424 (63.86%)** | | account_sized_init8 | 304 | 🟢 **-584 (65.77%)** | | account_sized1 | 128 | 🟢 **-200 (60.98%)** | | account_sized2 | 128 | 🟢 **-264 (67.35%)** | | account_sized4 | 128 | 🟢 **-440 (77.46%)** | | account_sized8 | 128 | 🟢 **-664 (83.84%)** | | account_unsized_init1 | 224 | 🟢 **-400 (64.10%)** | | account_unsized_init2 | 296 | 🟢 **-288 (49.32%)** | | account_unsized_init4 | 304 | 🟢 **-424 (58.24%)** | | account_unsized_init8 | 432 | 🟢 **-584 (57.48%)** | | account_unsized1 | 128 | 🟢 **-216 (62.79%)** | | account_unsized2 | 144 | 🟢 **-312 (68.42%)** | | account_unsized4 | 128 | 🟢 **-504 (79.75%)** | | account_unsized8 | 128 | 🟢 **-792 (86.09%)** | | boxed_account_empty_init1 | 176 | 🟢 **-376 (68.12%)** | | boxed_account_empty_init2 | 208 | 🟢 **-192 (48.00%)** | | boxed_account_empty_init4 | 208 | 🟢 **-224 (51.85%)** | | boxed_account_empty_init8 | 240 | 🟢 **-256 (51.61%)** | | boxed_account_empty1 | 128 | 🟢 **-192 (60.00%)** | | boxed_account_empty2 | 128 | 🟢 **-192 (60.00%)** | | boxed_account_empty4 | 144 | 🟢 **-176 (55.00%)** | | boxed_account_empty8 | 144 | 🟢 **-192 (57.14%)** | | boxed_account_sized_init1 | 176 | 🟢 **-376 (68.12%)** | | boxed_account_sized_init2 | 208 | 🟢 **-192 (48.00%)** | | boxed_account_sized_init4 | 208 | 🟢 **-224 (51.85%)** | | boxed_account_sized_init8 | 240 | 🟢 **-256 (51.61%)** | | boxed_account_sized1 | 128 | 🟢 **-192 (60.00%)** | | boxed_account_sized2 | 128 | 🟢 **-192 (60.00%)** | | boxed_account_sized4 | 144 | 🟢 **-176 (55.00%)** | | boxed_account_sized8 | 144 | 🟢 **-192 (57.14%)** | | boxed_account_unsized_init1 | 176 | 🟢 **-376 (68.12%)** | | boxed_account_unsized_init2 | 208 | 🟢 **-192 (48.00%)** | | boxed_account_unsized_init4 | 208 | 🟢 **-224 (51.85%)** | | boxed_account_unsized_init8 | 240 | 🟢 **-256 (51.61%)** | | boxed_account_unsized1 | 128 | 🟢 **-192 (60.00%)** | | boxed_account_unsized2 | 144 | 🟢 **-176 (55.00%)** | | boxed_account_unsized4 | 128 | 🟢 **-192 (60.00%)** | | boxed_account_unsized8 | 128 | 🟢 **-208 (61.90%)** | | boxed_interface_account_mint1 | 128 | 🟢 **-192 (60.00%)** | | boxed_interface_account_mint2 | 128 | 🟢 **-192 (60.00%)** | | boxed_interface_account_mint4 | 144 | 🟢 **-176 (55.00%)** | | boxed_interface_account_mint8 | 144 | 🟢 **-192 (57.14%)** | | boxed_interface_account_token1 | 128 | 🟢 **-192 (60.00%)** | | boxed_interface_account_token2 | 128 | 🟢 **-192 (60.00%)** | | boxed_interface_account_token4 | 144 | 🟢 **-176 (55.00%)** | | boxed_interface_account_token8 | 144 | 🟢 **-192 (57.14%)** | | interface_account_mint1 | 128 | 🟢 **-376 (74.60%)** | | interface_account_mint2 | 128 | 🟢 **-552 (81.18%)** | | interface_account_mint4 | 128 | 🟢 **-888 (87.40%)** | | interface_account_mint8 | 128 | 🟢 **-1,560 (92.42%)** | | interface_account_token1 | 128 | 🟢 **-552 (81.18%)** | | interface_account_token2 | 128 | 🟢 **-728 (85.05%)** | | interface_account_token4 | 128 | 🟢 **-1,240 (90.64%)** | | interface1 | 128 | 🟢 **-192 (60.00%)** | | interface2 | 128 | 🟢 **-240 (65.22%)** | | interface4 | 128 | 🟢 **-424 (76.81%)** | | interface8 | 128 | 🟢 **-600 (82.42%)** | | program1 | 128 | 🟢 **-192 (60.00%)** | | program2 | 128 | 🟢 **-240 (65.22%)** | | program4 | 128 | 🟢 **-424 (76.81%)** | | program8 | 128 | 🟢 **-600 (82.42%)** | | signer1 | 128 | 🟢 **-200 (60.98%)** | | signer2 | 128 | 🟢 **-248 (65.96%)** | | signer4 | 128 | 🟢 **-432 (77.14%)** | | signer8 | 128 | 🟢 **-600 (82.42%)** | | system_account1 | 128 | 🟢 **-200 (60.98%)** | | system_account2 | 128 | 🟢 **-248 (65.96%)** | | system_account4 | 128 | 🟢 **-432 (77.14%)** | | system_account8 | 128 | 🟢 **-600 (82.42%)** | | unchecked_account1 | 128 | 🟢 **-200 (60.98%)** | | unchecked_account2 | 128 | 🟢 **-248 (65.96%)** | | unchecked_account4 | 128 | 🟢 **-432 (77.14%)** | | unchecked_account8 | 128 | 🟢 **-600 (82.42%)** | ### Notable changes - `Box` the `anchor_lang::Result` error variants ([#2600](https://github.com/coral-xyz/anchor/pull/2600)). --- ## [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)). - Change all accounts to have a reference to `AccountInfo` instead of cloning ([#2656](https://github.com/coral-xyz/anchor/pull/2656)). --- ## [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 | ---