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