Gas Optimization — Efficient Solidity लिखें

Gas costs पर 50%+ बचत करें। वो techniques सीखें जो amateur और professional Solidity code में फर्क करती हैं।

Gas सिर्फ tech detail नहीं — यह user experience है। एक inefficient loop आपके dApp को high network activity के दौरान unusable बना सकता है। Optimized contracts = happy users = ज़्यादा adoption।

Top 5 Gas Optimization Techniques

Variable Packing

Multiple variables को एक 32-byte storage slot में pack करें। Per slot avoided 20,000 gas saves।

Unchecked Math

Safe arithmetic के लिए unchecked {} use करें ताकि overflow checks skip हों। Per operation ~20 gas saves।

Calldata Instead of Memory

External functions के लिए arrays/strings में calldata use करें। Copying avoid होती है, ~200 gas saves।

Custom Errors

require strings को custom errors से replace करें। Per revert ~50 gas saves।

Short-Circuit Conditions

&& और || conditions को gas cost से order करें। Cheapest checks पहले wasted computation save करते हैं।

Example: Variable Packing Optimization

❌ Unoptimized (3 slots)

contract Unoptimized {
    uint256 timestamp;  // Slot 0
    address owner;      // Slot 1
    bool isActive;      // Slot 2

    // 3 SSTORE operations
    // ~60,000 gas deploy पर
}

✅ Optimized (1 slot)

contract Optimized {
    uint64 timestamp;   // Slot 0 (8 bytes)
    address owner;      // Slot 0 (20 bytes)
    bool isActive;      // Slot 0 (1 byte)

    // 1 SSTORE operation
    // ~40,000 gas deploy पर
}

Optimization: uint64, address, और bool को एक 32-byte slot में pack करें (8 + 20 + 1 = 29 bytes)। 20,000 gas saves।

अक्सर पूछे जाने वाले सवाल

Gas optimization क्यों ज़रूरी है?

Gas का मतलब पैसा है। एक poorly optimized contract users को transaction per 2-3x ज़्यादा cost करवा सकता है। High-volume DeFi protocols के लिए, इसका मतलब millions in wasted fees है। Optimization competitive advantage है।

Gas save करने का सबसे आसान तरीका क्या है?

Require strings की जगह custom errors use करें (per revert ~50 gas saves), storage variables को tightly pack करें (per slot 20,000 gas saves), और external function parameters के लिए memory की जगह calldata use करें (per array ~200 gas saves)।

क्या शुरू से ही optimize करना चाहिए?

नहीं। पहले काम करवाएं, फिर सही बनाएं, फिर fast बनाएं। Premature optimization bugs लाता है। Optimize करने से पहले Foundry gas snapshots से measure करें।

Gas Optimization Master करें

Real code challenges के साथ 15+ optimization techniques practice करें। Foundry gas reports से अपनी improvements measure करें।

Optimize करना शुरू करें →