anchor/bench/COMPUTE_UNITS.md

608 lines
35 KiB
Markdown

# Compute Units
All notable changes in compute units 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.18.17
| Instruction | Compute Units | - |
| --------------------------- | ------------- | --- |
| accountInfo1 | 601 | - |
| accountInfo2 | 923 | - |
| accountInfo4 | 1,583 | - |
| accountInfo8 | 2,975 | - |
| accountEmptyInit1 | 5,034 | - |
| accountEmpty1 | 652 | - |
| accountEmptyInit2 | 9,687 | - |
| accountEmpty2 | 1,016 | - |
| accountEmptyInit4 | 18,501 | - |
| accountEmpty4 | 1,737 | - |
| accountEmptyInit8 | 36,169 | - |
| accountEmpty8 | 3,186 | - |
| accountSizedInit1 | 5,106 | - |
| accountSized1 | 668 | - |
| accountSizedInit2 | 9,828 | - |
| accountSized2 | 1,046 | - |
| accountSizedInit4 | 18,837 | - |
| accountSized4 | 1,807 | - |
| accountSizedInit8 | 36,761 | - |
| accountSized8 | 3,326 | - |
| accountUnsizedInit1 | 5,199 | - |
| accountUnsized1 | 702 | - |
| accountUnsizedInit2 | 10,078 | - |
| accountUnsized2 | 1,116 | - |
| accountUnsizedInit4 | 19,259 | - |
| accountUnsized4 | 1,953 | - |
| accountUnsizedInit8 | 37,331 | - |
| accountUnsized8 | 3,626 | - |
| boxedAccountEmptyInit1 | 5,064 | - |
| boxedAccountEmpty1 | 671 | - |
| boxedAccountEmptyInit2 | 9,721 | - |
| boxedAccountEmpty2 | 1,052 | - |
| boxedAccountEmptyInit4 | 18,582 | - |
| boxedAccountEmpty4 | 1,811 | - |
| boxedAccountEmptyInit8 | 36,329 | - |
| boxedAccountEmpty8 | 3,357 | - |
| boxedAccountSizedInit1 | 5,119 | - |
| boxedAccountSized1 | 686 | - |
| boxedAccountSizedInit2 | 9,845 | - |
| boxedAccountSized2 | 1,085 | - |
| boxedAccountSizedInit4 | 18,825 | - |
| boxedAccountSized4 | 1,874 | - |
| boxedAccountSizedInit8 | 36,824 | - |
| boxedAccountSized8 | 3,490 | - |
| boxedAccountUnsizedInit1 | 5,207 | - |
| boxedAccountUnsized1 | 721 | - |
| boxedAccountUnsizedInit2 | 10,015 | - |
| boxedAccountUnsized2 | 1,157 | - |
| boxedAccountUnsizedInit4 | 19,160 | - |
| boxedAccountUnsized4 | 2,019 | - |
| boxedAccountUnsizedInit8 | 37,496 | - |
| boxedAccountUnsized8 | 3,776 | - |
| boxedInterfaceAccountMint1 | 1,372 | - |
| boxedInterfaceAccountMint2 | 2,293 | - |
| boxedInterfaceAccountMint4 | 4,121 | - |
| boxedInterfaceAccountMint8 | 7,811 | - |
| boxedInterfaceAccountToken1 | 2,056 | - |
| boxedInterfaceAccountToken2 | 3,660 | - |
| boxedInterfaceAccountToken4 | 6,858 | - |
| boxedInterfaceAccountToken8 | 13,284 | - |
| interfaceAccountMint1 | 1,472 | - |
| interfaceAccountMint2 | 2,631 | - |
| interfaceAccountMint4 | 4,951 | - |
| interfaceAccountMint8 | 9,588 | - |
| interfaceAccountToken1 | 2,130 | - |
| interfaceAccountToken2 | 3,928 | - |
| interfaceAccountToken4 | 7,521 | - |
| interface1 | 600 | - |
| interface2 | 745 | - |
| interface4 | 1,033 | - |
| interface8 | 1,616 | - |
| program1 | 596 | - |
| program2 | 737 | - |
| program4 | 1,019 | - |
| program8 | 1,584 | - |
| signer1 | 580 | - |
| signer2 | 872 | - |
| signer4 | 1,454 | - |
| signer8 | 2,618 | - |
| systemAccount1 | 592 | - |
| systemAccount2 | 894 | - |
| systemAccount4 | 1,497 | - |
| systemAccount8 | 2,707 | - |
| uncheckedAccount1 | 563 | - |
| uncheckedAccount2 | 836 | - |
| uncheckedAccount4 | 1,378 | - |
| uncheckedAccount8 | 2,468 | - |
### Notable changes
---
## [0.30.1]
Solana version: 1.18.17
| Instruction | Compute Units | - |
| --------------------------- | ------------- | --- |
| accountInfo1 | 601 | - |
| accountInfo2 | 923 | - |
| accountInfo4 | 1,583 | - |
| accountInfo8 | 2,975 | - |
| accountEmptyInit1 | 5,034 | - |
| accountEmpty1 | 652 | - |
| accountEmptyInit2 | 9,687 | - |
| accountEmpty2 | 1,016 | - |
| accountEmptyInit4 | 18,501 | - |
| accountEmpty4 | 1,737 | - |
| accountEmptyInit8 | 36,169 | - |
| accountEmpty8 | 3,186 | - |
| accountSizedInit1 | 5,106 | - |
| accountSized1 | 668 | - |
| accountSizedInit2 | 9,828 | - |
| accountSized2 | 1,046 | - |
| accountSizedInit4 | 18,837 | - |
| accountSized4 | 1,807 | - |
| accountSizedInit8 | 36,761 | - |
| accountSized8 | 3,326 | - |
| accountUnsizedInit1 | 5,199 | - |
| accountUnsized1 | 702 | - |
| accountUnsizedInit2 | 10,078 | - |
| accountUnsized2 | 1,116 | - |
| accountUnsizedInit4 | 19,259 | - |
| accountUnsized4 | 1,953 | - |
| accountUnsizedInit8 | 37,331 | - |
| accountUnsized8 | 3,626 | - |
| boxedAccountEmptyInit1 | 5,064 | - |
| boxedAccountEmpty1 | 671 | - |
| boxedAccountEmptyInit2 | 9,721 | - |
| boxedAccountEmpty2 | 1,052 | - |
| boxedAccountEmptyInit4 | 18,582 | - |
| boxedAccountEmpty4 | 1,811 | - |
| boxedAccountEmptyInit8 | 36,329 | - |
| boxedAccountEmpty8 | 3,357 | - |
| boxedAccountSizedInit1 | 5,119 | - |
| boxedAccountSized1 | 686 | - |
| boxedAccountSizedInit2 | 9,845 | - |
| boxedAccountSized2 | 1,085 | - |
| boxedAccountSizedInit4 | 18,825 | - |
| boxedAccountSized4 | 1,874 | - |
| boxedAccountSizedInit8 | 36,824 | - |
| boxedAccountSized8 | 3,490 | - |
| boxedAccountUnsizedInit1 | 5,207 | - |
| boxedAccountUnsized1 | 721 | - |
| boxedAccountUnsizedInit2 | 10,015 | - |
| boxedAccountUnsized2 | 1,157 | - |
| boxedAccountUnsizedInit4 | 19,160 | - |
| boxedAccountUnsized4 | 2,019 | - |
| boxedAccountUnsizedInit8 | 37,496 | - |
| boxedAccountUnsized8 | 3,776 | - |
| boxedInterfaceAccountMint1 | 1,372 | - |
| boxedInterfaceAccountMint2 | 2,293 | - |
| boxedInterfaceAccountMint4 | 4,121 | - |
| boxedInterfaceAccountMint8 | 7,811 | - |
| boxedInterfaceAccountToken1 | 2,056 | - |
| boxedInterfaceAccountToken2 | 3,660 | - |
| boxedInterfaceAccountToken4 | 6,858 | - |
| boxedInterfaceAccountToken8 | 13,284 | - |
| interfaceAccountMint1 | 1,472 | - |
| interfaceAccountMint2 | 2,631 | - |
| interfaceAccountMint4 | 4,951 | - |
| interfaceAccountMint8 | 9,588 | - |
| interfaceAccountToken1 | 2,130 | - |
| interfaceAccountToken2 | 3,928 | - |
| interfaceAccountToken4 | 7,521 | - |
| interface1 | 600 | - |
| interface2 | 745 | - |
| interface4 | 1,033 | - |
| interface8 | 1,616 | - |
| program1 | 596 | - |
| program2 | 737 | - |
| program4 | 1,019 | - |
| program8 | 1,584 | - |
| signer1 | 580 | - |
| signer2 | 872 | - |
| signer4 | 1,454 | - |
| signer8 | 2,618 | - |
| systemAccount1 | 592 | - |
| systemAccount2 | 894 | - |
| systemAccount4 | 1,497 | - |
| systemAccount8 | 2,707 | - |
| uncheckedAccount1 | 563 | - |
| uncheckedAccount2 | 836 | - |
| uncheckedAccount4 | 1,378 | - |
| uncheckedAccount8 | 2,468 | - |
### Notable changes
---
## [0.30.0]
Solana version: 1.18.8
| Instruction | Compute Units | - |
| --------------------------- | ------------- | ---------------------- |
| accountInfo1 | 601 | 🟢 **-94 (13.53%)** |
| accountInfo2 | 923 | 🟢 **-112 (10.82%)** |
| accountInfo4 | 1,583 | 🟢 **-147 (8.50%)** |
| accountInfo8 | 2,975 | 🟢 **-367 (10.98%)** |
| accountEmptyInit1 | 5,034 | 🟢 **-518 (9.33%)** |
| accountEmpty1 | 652 | 🟢 **-167 (20.39%)** |
| accountEmptyInit2 | 9,687 | 🟢 **-734 (7.04%)** |
| accountEmpty2 | 1,016 | 🟢 **-259 (20.31%)** |
| accountEmptyInit4 | 18,501 | 🟢 **-1,302 (6.57%)** |
| accountEmpty4 | 1,737 | 🟢 **-440 (20.21%)** |
| accountEmptyInit8 | 36,169 | 🟢 **-2,440 (6.32%)** |
| accountEmpty8 | 3,186 | 🟢 **-804 (20.15%)** |
| accountSizedInit1 | 5,106 | 🟢 **-541 (9.58%)** |
| accountSized1 | 668 | 🟢 **-175 (20.76%)** |
| accountSizedInit2 | 9,828 | 🟢 **-779 (7.34%)** |
| accountSized2 | 1,046 | 🟢 **-271 (20.58%)** |
| accountSizedInit4 | 18,837 | 🟢 **-1,388 (6.86%)** |
| accountSized4 | 1,807 | 🟢 **-467 (20.54%)** |
| accountSizedInit8 | 36,761 | 🟢 **-2,615 (6.64%)** |
| accountSized8 | 3,326 | 🟢 **-859 (20.53%)** |
| accountUnsizedInit1 | 5,199 | 🟢 **-541 (9.43%)** |
| accountUnsized1 | 702 | 🟢 **-168 (19.31%)** |
| accountUnsizedInit2 | 10,078 | 🟢 **-778 (7.17%)** |
| accountUnsized2 | 1,116 | 🟢 **-263 (19.07%)** |
| accountUnsizedInit4 | 19,259 | 🟢 **-1,393 (6.75%)** |
| accountUnsized4 | 1,953 | 🟢 **-458 (19.00%)** |
| accountUnsizedInit8 | 37,331 | 🟢 **-2,638 (6.60%)** |
| accountUnsized8 | 3,626 | 🟢 **-852 (19.03%)** |
| boxedAccountEmptyInit1 | 5,064 | 🟢 **-541 (9.65%)** |
| boxedAccountEmpty1 | 671 | 🟢 **-185 (21.61%)** |
| boxedAccountEmptyInit2 | 9,721 | 🟢 **-801 (7.61%)** |
| boxedAccountEmpty2 | 1,052 | 🟢 **-295 (21.90%)** |
| boxedAccountEmptyInit4 | 18,582 | 🟢 **-1,420 (7.10%)** |
| boxedAccountEmpty4 | 1,811 | 🟢 **-513 (22.07%)** |
| boxedAccountEmptyInit8 | 36,329 | 🟢 **-2,673 (6.85%)** |
| boxedAccountEmpty8 | 3,357 | 🟢 **-954 (22.13%)** |
| boxedAccountSizedInit1 | 5,119 | 🟢 **-567 (9.97%)** |
| boxedAccountSized1 | 686 | 🟢 **-192 (21.87%)** |
| boxedAccountSizedInit2 | 9,845 | 🟢 **-845 (7.90%)** |
| boxedAccountSized2 | 1,085 | 🟢 **-309 (22.17%)** |
| boxedAccountSizedInit4 | 18,825 | 🟢 **-1,513 (7.44%)** |
| boxedAccountSized4 | 1,874 | 🟢 **-539 (22.34%)** |
| boxedAccountSizedInit8 | 36,824 | 🟢 **-2,846 (7.17%)** |
| boxedAccountSized8 | 3,490 | 🟢 **-1,003 (22.32%)** |
| boxedAccountUnsizedInit1 | 5,207 | 🟢 **-567 (9.82%)** |
| boxedAccountUnsized1 | 721 | 🟢 **-187 (20.59%)** |
| boxedAccountUnsizedInit2 | 10,015 | 🟢 **-851 (7.83%)** |
| boxedAccountUnsized2 | 1,157 | 🟢 **-300 (20.59%)** |
| boxedAccountUnsizedInit4 | 19,160 | 🟢 **-1,528 (7.39%)** |
| boxedAccountUnsized4 | 2,019 | 🟢 **-527 (20.70%)** |
| boxedAccountUnsizedInit8 | 37,496 | 🟢 **-2,879 (7.13%)** |
| boxedAccountUnsized8 | 3,776 | 🟢 **-983 (20.66%)** |
| boxedInterfaceAccountMint1 | 1,372 | 🟢 **-824 (37.52%)** |
| boxedInterfaceAccountMint2 | 2,293 | 🟢 **-1,554 (40.40%)** |
| boxedInterfaceAccountMint4 | 4,121 | 🟢 **-3,011 (42.22%)** |
| boxedInterfaceAccountMint8 | 7,811 | 🟢 **-5,932 (43.16%)** |
| boxedInterfaceAccountToken1 | 2,056 | 🟢 **-70 (3.29%)** |
| boxedInterfaceAccountToken2 | 3,660 | 🟢 **-46 (1.24%)** |
| boxedInterfaceAccountToken4 | 6,858 | 🔴 **+5 (0.07%)** |
| boxedInterfaceAccountToken8 | 13,284 | 🔴 **+100 (0.76%)** |
| interfaceAccountMint1 | 1,472 | 🟢 **-813 (35.58%)** |
| interfaceAccountMint2 | 2,631 | 🟢 **-1,547 (37.03%)** |
| interfaceAccountMint4 | 4,951 | 🟢 **-3,013 (37.83%)** |
| interfaceAccountMint8 | 9,588 | 🟢 **-5,950 (38.29%)** |
| interfaceAccountToken1 | 2,130 | 🟢 **-82 (3.71%)** |
| interfaceAccountToken2 | 3,928 | 🟢 **-102 (2.53%)** |
| interfaceAccountToken4 | 7,521 | 🟢 **-142 (1.85%)** |
| interface1 | 600 | 🟢 **-141 (19.03%)** |
| interface2 | 745 | 🟢 **-189 (20.24%)** |
| interface4 | 1,033 | 🟢 **-282 (21.44%)** |
| interface8 | 1,616 | 🟢 **-470 (22.53%)** |
| program1 | 596 | 🟢 **-145 (19.57%)** |
| program2 | 737 | 🟢 **-197 (21.09%)** |
| program4 | 1,019 | 🟢 **-298 (22.63%)** |
| program8 | 1,584 | 🟢 **-502 (24.07%)** |
| signer1 | 580 | 🟢 **-95 (14.07%)** |
| signer2 | 872 | 🟢 **-115 (11.65%)** |
| signer4 | 1,454 | 🟢 **-152 (9.46%)** |
| signer8 | 2,618 | 🟢 **-228 (8.01%)** |
| systemAccount1 | 592 | 🟢 **-137 (18.79%)** |
| systemAccount2 | 894 | 🟢 **-199 (18.21%)** |
| systemAccount4 | 1,497 | 🟢 **-320 (17.61%)** |
| systemAccount8 | 2,707 | 🟢 **-564 (17.24%)** |
| uncheckedAccount1 | 563 | 🟢 **-94 (14.31%)** |
| uncheckedAccount2 | 836 | 🟢 **-113 (11.91%)** |
| uncheckedAccount4 | 1,378 | 🟢 **-148 (9.70%)** |
| uncheckedAccount8 | 2,468 | 🟢 **-220 (8.18%)** |
### 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 | Compute Units | +/- |
| --------------------------- | ------------- | ---------------------- |
| accountInfo1 | 695 | 🟢 **-431 (38.28%)** |
| accountInfo2 | 1,035 | 🟢 **-651 (38.61%)** |
| accountInfo4 | 1,730 | 🟢 **-645 (27.16%)** |
| accountInfo8 | 3,342 | 🟢 **-1,310 (28.16%)** |
| accountEmptyInit1 | 5,552 | 🟢 **-919 (14.20%)** |
| accountEmpty1 | 819 | 🟢 **-441 (35.00%)** |
| accountEmptyInit2 | 10,421 | 🟢 **-1,079 (9.38%)** |
| accountEmpty2 | 1,275 | 🟢 **-690 (35.11%)** |
| accountEmptyInit4 | 19,803 | 🟢 **-1,691 (7.87%)** |
| accountEmpty4 | 2,177 | 🟢 **-774 (26.23%)** |
| accountEmptyInit8 | 38,609 | 🟢 **-2,418 (5.89%)** |
| accountEmpty8 | 3,990 | 🟢 **-1,837 (31.53%)** |
| accountSizedInit1 | 5,647 | 🟢 **-937 (14.23%)** |
| accountSized1 | 843 | 🟢 **-482 (36.38%)** |
| accountSizedInit2 | 10,607 | 🟢 **-1,183 (10.03%)** |
| accountSized2 | 1,317 | 🟢 **-767 (36.80%)** |
| accountSizedInit4 | 20,225 | 🟢 **-1,755 (7.98%)** |
| accountSized4 | 2,274 | 🟢 **-899 (28.33%)** |
| accountSizedInit8 | 39,376 | 🟢 **-2,556 (6.10%)** |
| accountSized8 | 4,185 | 🟢 **-1,979 (32.11%)** |
| accountUnsizedInit1 | 5,740 | 🟢 **-978 (14.56%)** |
| accountUnsized1 | 870 | 🟢 **-579 (39.96%)** |
| accountUnsizedInit2 | 10,856 | 🟢 **-1,195 (9.92%)** |
| accountUnsized2 | 1,379 | 🟢 **-610 (30.67%)** |
| accountUnsizedInit4 | 20,652 | 🟢 **-1,721 (7.69%)** |
| accountUnsized4 | 2,411 | 🟢 **-1,136 (32.03%)** |
| accountUnsizedInit8 | 39,969 | 🟢 **-2,985 (6.95%)** |
| accountUnsized8 | 4,478 | 🟢 **-2,285 (33.79%)** |
| boxedAccountEmptyInit1 | 5,605 | 🟢 **-1,083 (16.19%)** |
| boxedAccountEmpty1 | 856 | 🟢 **-143 (14.31%)** |
| boxedAccountEmptyInit2 | 10,522 | 🟢 **-1,209 (10.31%)** |
| boxedAccountEmpty2 | 1,347 | 🟢 **-265 (16.44%)** |
| boxedAccountEmptyInit4 | 20,002 | 🟢 **-1,295 (6.08%)** |
| boxedAccountEmpty4 | 2,324 | 🟢 **-511 (18.02%)** |
| boxedAccountEmptyInit8 | 39,002 | 🟢 **-1,896 (4.64%)** |
| boxedAccountEmpty8 | 4,311 | 🟢 **-1,159 (21.19%)** |
| boxedAccountSizedInit1 | 5,686 | 🟢 **-1,104 (16.26%)** |
| boxedAccountSized1 | 878 | 🟢 **-150 (14.59%)** |
| boxedAccountSizedInit2 | 10,690 | 🟢 **-1,248 (10.45%)** |
| boxedAccountSized2 | 1,394 | 🟢 **-280 (16.73%)** |
| boxedAccountSizedInit4 | 20,338 | 🟢 **-1,375 (6.33%)** |
| boxedAccountSized4 | 2,413 | 🟢 **-541 (18.31%)** |
| boxedAccountSizedInit8 | 39,670 | 🟢 **-2,059 (4.93%)** |
| boxedAccountSized8 | 4,493 | 🟢 **-1,216 (21.30%)** |
| boxedAccountUnsizedInit1 | 5,774 | 🟢 **-1,132 (16.39%)** |
| boxedAccountUnsized1 | 908 | 🟢 **-175 (16.16%)** |
| boxedAccountUnsizedInit2 | 10,866 | 🟢 **-1,304 (10.71%)** |
| boxedAccountUnsized2 | 1,457 | 🟢 **-324 (18.19%)** |
| boxedAccountUnsizedInit4 | 20,688 | 🟢 **-1,484 (6.69%)** |
| boxedAccountUnsized4 | 2,546 | 🟢 **-633 (19.91%)** |
| boxedAccountUnsizedInit8 | 40,375 | 🟢 **-2,274 (5.33%)** |
| boxedAccountUnsized8 | 4,759 | 🟢 **-1,399 (22.72%)** |
| boxedInterfaceAccountMint1 | 2,196 | 🟢 **-211 (8.77%)** |
| boxedInterfaceAccountMint2 | 3,847 | 🟢 **-403 (9.48%)** |
| boxedInterfaceAccountMint4 | 7,132 | 🟢 **-792 (9.99%)** |
| boxedInterfaceAccountMint8 | 13,743 | 🟢 **-1,719 (11.12%)** |
| boxedInterfaceAccountToken1 | 2,126 | 🟢 **-8 (0.37%)** |
| boxedInterfaceAccountToken2 | 3,706 | 🔴 **+3 (0.08%)** |
| boxedInterfaceAccountToken4 | 6,853 | 🔴 **+20 (0.29%)** |
| boxedInterfaceAccountToken8 | 13,184 | 🟢 **-95 (0.72%)** |
| interfaceAccountMint1 | 2,285 | 🟢 **-190 (7.68%)** |
| interfaceAccountMint2 | 4,178 | 🟢 **-973 (18.89%)** |
| interfaceAccountMint4 | 7,964 | 🟢 **-1,980 (19.91%)** |
| interfaceAccountMint8 | 15,538 | 🟢 **-3,043 (16.38%)** |
| interfaceAccountToken1 | 2,212 | 🔴 **+10 (0.45%)** |
| interfaceAccountToken2 | 4,030 | 🟢 **-39 (0.96%)** |
| interfaceAccountToken4 | 7,663 | 🟢 **-25 (0.33%)** |
| interface1 | 741 | 🟢 **-429 (36.67%)** |
| interface2 | 934 | 🟢 **-666 (41.63%)** |
| interface4 | 1,315 | 🟢 **-726 (35.57%)** |
| interface8 | 2,086 | 🟢 **-1,741 (45.49%)** |
| program1 | 741 | 🟢 **-423 (36.34%)** |
| program2 | 934 | 🟢 **-654 (41.18%)** |
| program4 | 1,317 | 🟢 **-702 (34.77%)** |
| program8 | 2,086 | 🟢 **-1,693 (44.80%)** |
| signer1 | 675 | 🟢 **-454 (40.21%)** |
| signer2 | 987 | 🟢 **-708 (41.77%)** |
| signer4 | 1,606 | 🟢 **-789 (32.94%)** |
| signer8 | 2,846 | 🟢 **-1,845 (39.33%)** |
| systemAccount1 | 729 | 🟢 **-454 (38.38%)** |
| systemAccount2 | 1,093 | 🟢 **-708 (39.31%)** |
| systemAccount4 | 1,817 | 🟢 **-789 (30.28%)** |
| systemAccount8 | 3,271 | 🟢 **-1,845 (36.06%)** |
| uncheckedAccount1 | 657 | 🟢 **-468 (41.60%)** |
| uncheckedAccount2 | 949 | 🟢 **-737 (43.71%)** |
| uncheckedAccount4 | 1,526 | 🟢 **-850 (35.77%)** |
| uncheckedAccount8 | 2,688 | 🟢 **-1,964 (42.22%)** |
### Notable changes
- `Box` the `anchor_lang::Result` error variants ([#2600](https://github.com/coral-xyz/anchor/pull/2600)).
- Change all accounts to have a reference to `AccountInfo` instead of cloning ([#2656](https://github.com/coral-xyz/anchor/pull/2656)).
- Reduce unnecessary cloning ([#2663](https://github.com/coral-xyz/anchor/pull/2663)).
---
## [0.28.0]
Solana version: 1.16.0
| Instruction | Compute Units | +/- |
| --------------------------- | ------------- | ---------------------- |
| accountInfo1 | 1,126 | 🔴 **+63 (5.93%)** |
| accountInfo2 | 1,686 | 🟢 **-88 (4.96%)** |
| accountInfo4 | 2,375 | 🟢 **-87 (3.53%)** |
| accountInfo8 | 4,652 | 🔴 **+1 (0.02%)** |
| accountEmptyInit1 | 6,471 | 🟢 **-177 (2.66%)** |
| accountEmpty1 | 1,260 | 🔴 **+61 (5.09%)** |
| accountEmptyInit2 | 11,500 | 🟢 **-247 (2.10%)** |
| accountEmpty2 | 1,965 | 🟢 **-94 (4.57%)** |
| accountEmptyInit4 | 21,494 | 🟢 **-202 (0.93%)** |
| accountEmpty4 | 2,951 | 🟢 **-98 (3.21%)** |
| accountEmptyInit8 | 41,027 | 🟢 **-585 (1.41%)** |
| accountEmpty8 | 5,827 | 🟢 **-11 (0.19%)** |
| accountSizedInit1 | 6,584 | 🟢 **-175 (2.59%)** |
| accountSized1 | 1,325 | 🔴 **+81 (6.51%)** |
| accountSizedInit2 | 11,790 | 🟢 **-178 (1.49%)** |
| accountSized2 | 2,084 | 🟢 **-89 (4.10%)** |
| accountSizedInit4 | 21,980 | 🟢 **-158 (0.71%)** |
| accountSized4 | 3,173 | 🟢 **-17 (0.53%)** |
| accountSizedInit8 | 41,932 | 🟢 **-568 (1.34%)** |
| accountSized8 | 6,164 | 🔴 **+10 (0.16%)** |
| accountUnsizedInit1 | 6,718 | 🟢 **-177 (2.57%)** |
| accountUnsized1 | 1,449 | 🔴 **+97 (7.17%)** |
| accountUnsizedInit2 | 12,051 | 🟢 **-188 (1.54%)** |
| accountUnsized2 | 1,989 | 🟢 **-111 (5.29%)** |
| accountUnsizedInit4 | 22,373 | 🟢 **-309 (1.36%)** |
| accountUnsized4 | 3,547 | 🔴 **+40 (1.14%)** |
| accountUnsizedInit8 | 42,954 | 🟢 **-632 (1.45%)** |
| accountUnsized8 | 6,763 | 🟢 **-83 (1.21%)** |
| boxedAccountEmptyInit1 | 6,688 | 🟢 **-162 (2.36%)** |
| boxedAccountEmpty1 | 999 | 🟢 **-86 (7.93%)** |
| boxedAccountEmptyInit2 | 11,731 | 🟢 **-226 (1.89%)** |
| boxedAccountEmpty2 | 1,612 | 🟢 **-94 (5.51%)** |
| boxedAccountEmptyInit4 | 21,297 | 🟢 **-342 (1.58%)** |
| boxedAccountEmpty4 | 2,835 | 🟢 **-98 (3.34%)** |
| boxedAccountEmptyInit8 | 40,898 | 🟢 **-588 (1.42%)** |
| boxedAccountEmpty8 | 5,470 | 🟢 **-105 (1.88%)** |
| boxedAccountSizedInit1 | 6,790 | 🟢 **-162 (2.33%)** |
| boxedAccountSized1 | 1,028 | 🟢 **-84 (7.55%)** |
| boxedAccountSizedInit2 | 11,938 | 🟢 **-222 (1.83%)** |
| boxedAccountSized2 | 1,674 | 🟢 **-87 (4.94%)** |
| boxedAccountSizedInit4 | 21,713 | 🟢 **-334 (1.51%)** |
| boxedAccountSized4 | 2,954 | 🟢 **-91 (2.99%)** |
| boxedAccountSizedInit8 | 41,729 | 🟢 **-572 (1.35%)** |
| boxedAccountSized8 | 5,709 | 🟢 **-89 (1.54%)** |
| boxedAccountUnsizedInit1 | 6,906 | 🟢 **-170 (2.40%)** |
| boxedAccountUnsized1 | 1,083 | 🟢 **-95 (8.06%)** |
| boxedAccountUnsizedInit2 | 12,170 | 🟢 **-238 (1.92%)** |
| boxedAccountUnsized2 | 1,781 | 🟢 **-105 (5.57%)** |
| boxedAccountUnsizedInit4 | 22,172 | 🟢 **-366 (1.62%)** |
| boxedAccountUnsized4 | 3,179 | 🟢 **-123 (3.73%)** |
| boxedAccountUnsizedInit8 | 42,649 | 🟢 **-636 (1.47%)** |
| boxedAccountUnsized8 | 6,158 | 🟢 **-154 (2.44%)** |
| boxedInterfaceAccountMint1 | 2,407 | 🟢 **-1 (0.04%)** |
| boxedInterfaceAccountMint2 | 4,250 | 🔴 **+74 (1.77%)** |
| boxedInterfaceAccountMint4 | 7,924 | 🔴 **+235 (3.06%)** |
| boxedInterfaceAccountMint8 | 15,462 | 🔴 **+556 (3.73%)** |
| boxedInterfaceAccountToken1 | 2,134 | 🔴 **+288 (15.60%)** |
| boxedInterfaceAccountToken2 | 3,703 | 🔴 **+652 (21.37%)** |
| boxedInterfaceAccountToken4 | 6,833 | 🔴 **+1,391 (25.56%)** |
| boxedInterfaceAccountToken8 | 13,279 | 🔴 **+2,867 (27.54%)** |
| interfaceAccountMint1 | 2,475 | 🟢 **-164 (6.21%)** |
| interfaceAccountMint2 | 5,151 | 🔴 **+302 (6.23%)** |
| interfaceAccountMint4 | 9,944 | 🔴 **+362 (3.78%)** |
| interfaceAccountMint8 | 18,581 | 🔴 **+665 (3.71%)** |
| interfaceAccountToken1 | 2,202 | 🔴 **+338 (18.13%)** |
| interfaceAccountToken2 | 4,069 | 🔴 **+735 (22.05%)** |
| interfaceAccountToken4 | 7,688 | 🔴 **+1,531 (24.87%)** |
| interface1 | 1,170 | 🔴 **+62 (5.60%)** |
| interface2 | 1,600 | 🟢 **-97 (5.72%)** |
| interface4 | 2,041 | 🟢 **-106 (4.94%)** |
| interface8 | 3,827 | 🟢 **-31 (0.80%)** |
| program1 | 1,164 | 🔴 **+56 (5.05%)** |
| program2 | 1,588 | 🟢 **-108 (6.37%)** |
| program4 | 2,019 | 🟢 **-130 (6.05%)** |
| program8 | 3,779 | 🟢 **-79 (2.05%)** |
| signer1 | 1,129 | 🔴 **+62 (5.81%)** |
| signer2 | 1,695 | 🟢 **-88 (4.94%)** |
| signer4 | 2,395 | 🟢 **-87 (3.51%)** |
| signer8 | 4,691 | 🔴 **+1 (0.02%)** |
| systemAccount1 | 1,183 | 🔴 **+61 (5.44%)** |
| systemAccount2 | 1,801 | 🟢 **-92 (4.86%)** |
| systemAccount4 | 2,606 | 🟢 **-95 (3.52%)** |
| systemAccount8 | 5,116 | 🟢 **-15 (0.29%)** |
| uncheckedAccount1 | 1,125 | 🔴 **+63 (5.93%)** |
| uncheckedAccount2 | 1,686 | 🟢 **-88 (4.96%)** |
| uncheckedAccount4 | 2,376 | 🟢 **-87 (3.53%)** |
| uncheckedAccount8 | 4,652 | 🔴 **+2 (0.04%)** |
### Notable changes
- Upgrading Solana to `1.16`. The difference in compute units 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 | Compute Units | +/- |
| --------------------------- | ------------- | --- |
| accountInfo1 | 1,063 | N/A |
| accountInfo2 | 1,774 | N/A |
| accountInfo4 | 2,462 | N/A |
| accountInfo8 | 4,651 | N/A |
| accountEmptyInit1 | 6,648 | N/A |
| accountEmpty1 | 1,199 | N/A |
| accountEmptyInit2 | 11,747 | N/A |
| accountEmpty2 | 2,059 | N/A |
| accountEmptyInit4 | 21,696 | N/A |
| accountEmpty4 | 3,049 | N/A |
| accountEmptyInit8 | 41,612 | N/A |
| accountEmpty8 | 5,838 | N/A |
| accountSizedInit1 | 6,759 | N/A |
| accountSized1 | 1,244 | N/A |
| accountSizedInit2 | 11,968 | N/A |
| accountSized2 | 2,173 | N/A |
| accountSizedInit4 | 22,138 | N/A |
| accountSized4 | 3,190 | N/A |
| accountSizedInit8 | 42,500 | N/A |
| accountSized8 | 6,154 | N/A |
| accountUnsizedInit1 | 6,895 | N/A |
| accountUnsized1 | 1,352 | N/A |
| accountUnsizedInit2 | 12,239 | N/A |
| accountUnsized2 | 2,100 | N/A |
| accountUnsizedInit4 | 22,682 | N/A |
| accountUnsized4 | 3,507 | N/A |
| accountUnsizedInit8 | 43,586 | N/A |
| accountUnsized8 | 6,846 | N/A |
| boxedAccountEmptyInit1 | 6,850 | N/A |
| boxedAccountEmpty1 | 1,085 | N/A |
| boxedAccountEmptyInit2 | 11,957 | N/A |
| boxedAccountEmpty2 | 1,706 | N/A |
| boxedAccountEmptyInit4 | 21,639 | N/A |
| boxedAccountEmpty4 | 2,933 | N/A |
| boxedAccountEmptyInit8 | 41,486 | N/A |
| boxedAccountEmpty8 | 5,575 | N/A |
| boxedAccountSizedInit1 | 6,952 | N/A |
| boxedAccountSized1 | 1,112 | N/A |
| boxedAccountSizedInit2 | 12,160 | N/A |
| boxedAccountSized2 | 1,761 | N/A |
| boxedAccountSizedInit4 | 22,047 | N/A |
| boxedAccountSized4 | 3,045 | N/A |
| boxedAccountSizedInit8 | 42,301 | N/A |
| boxedAccountSized8 | 5,798 | N/A |
| boxedAccountUnsizedInit1 | 7,076 | N/A |
| boxedAccountUnsized1 | 1,178 | N/A |
| boxedAccountUnsizedInit2 | 12,408 | N/A |
| boxedAccountUnsized2 | 1,886 | N/A |
| boxedAccountUnsizedInit4 | 22,538 | N/A |
| boxedAccountUnsized4 | 3,302 | N/A |
| boxedAccountUnsizedInit8 | 43,285 | N/A |
| boxedAccountUnsized8 | 6,312 | N/A |
| boxedInterfaceAccountMint1 | 2,408 | N/A |
| boxedInterfaceAccountMint2 | 4,176 | N/A |
| boxedInterfaceAccountMint4 | 7,689 | N/A |
| boxedInterfaceAccountMint8 | 14,906 | N/A |
| boxedInterfaceAccountToken1 | 1,846 | N/A |
| boxedInterfaceAccountToken2 | 3,051 | N/A |
| boxedInterfaceAccountToken4 | 5,442 | N/A |
| boxedInterfaceAccountToken8 | 10,412 | N/A |
| interfaceAccountMint1 | 2,639 | N/A |
| interfaceAccountMint2 | 4,849 | N/A |
| interfaceAccountMint4 | 9,582 | N/A |
| interfaceAccountMint8 | 17,916 | N/A |
| interfaceAccountToken1 | 1,864 | N/A |
| interfaceAccountToken2 | 3,334 | N/A |
| interfaceAccountToken4 | 6,157 | N/A |
| interface1 | 1,108 | N/A |
| interface2 | 1,697 | N/A |
| interface4 | 2,147 | N/A |
| interface8 | 3,858 | N/A |
| program1 | 1,108 | N/A |
| program2 | 1,696 | N/A |
| program4 | 2,149 | N/A |
| program8 | 3,858 | N/A |
| signer1 | 1,067 | N/A |
| signer2 | 1,783 | N/A |
| signer4 | 2,482 | N/A |
| signer8 | 4,690 | N/A |
| systemAccount1 | 1,122 | N/A |
| systemAccount2 | 1,893 | N/A |
| systemAccount4 | 2,701 | N/A |
| systemAccount8 | 5,131 | N/A |
| uncheckedAccount1 | 1,062 | N/A |
| uncheckedAccount2 | 1,774 | N/A |
| uncheckedAccount4 | 2,463 | N/A |
| uncheckedAccount8 | 4,650 | N/A |
---