Study
Foundry

Gas Report dengan forge test --gas-report

Penjelasan

Optimasi gas adalah bagian penting pengembangan smart contract karena setiap operasi di EVM berbiaya nyata bagi pengguna. Foundry menyediakan flag `--gas-report` pada `forge test` yang menghasilkan tabel ringkas konsumsi gas rata-rata, minimum, dan maksimum untuk setiap fungsi publik yang dipanggil selama test berjalan. Laporan ini dikelompokkan per contract, menampilkan kolom seperti jumlah pemanggilan (calls), gas minimum, gas rata-rata, gas median, dan gas maksimum. Ini memudahkan mengidentifikasi fungsi mana yang paling boros gas dan layak dioptimasi lebih lanjut.

Contoh Konsep

# Jalankan test sambil menghasilkan laporan gas
forge test --gas-report

# Contoh output:
# | Counter contract |                 |     |        |     |         |
# |-------------------|-----------------|-----|--------|-----|---------|
# | Function Name      | min             | avg | median | max | # calls |
# | increment           | 43181           | 43181 | 43181 | 43181 | 5    |
# | setNumber            | 43765           | 43765 | 43765 | 43765 | 3    |

Praktikum

Jalankan test project Counter dengan flag --gas-report, lalu identifikasi fungsi mana yang paling banyak mengonsumsi gas rata-rata.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Bandingkan gas report sebelum dan sesudah perubahan kode untuk memastikan optimasi yang kamu lakukan benar-benar menurunkan konsumsi gas, bukan cuma asumsi.