फ्लैश और RAM बजट

1MB फ्लैश और ~23KB हीप कहाँ जाते हैं, और 60% फ्लैश / 65% RAM सीमा के नीचे बनाए रखने का तरीका।

फ्लैश बजट

1 MB ESP8285 फ्लैश पर WebUI का दबदबा है: बंडल किया गया क्लाइंट बिल्ड ट्री-शेकिंग के बाद ~160 KB संपीड़ित (~फ्लैश का 16%) है। फ्लोट रनटाइम (_scanf_float, _printf_float, _dtoa_r, _strtod_l …) ~9.7 KB है — वास्तविक पर सबसे बड़ा लीवर नहीं। वर्तमान आधार फ्लैश ~68.6% पर है; 60% लक्ष्य के लिए ~83 KB की कटौती चाहिए, और WebUI ही इसे पाने लायक एकमात्र बड़ा लीवर है।

RAM बजट

ESP8285 लगभग 23 KB हीप उजागर करता है। कॉन्फ़िग सेव को कभी भी हीप पर बड़ा JSON दस्तावेज़ आवंटित नहीं करना चाहिए — ऑर्निथॉप्टर कॉन्फ़िग सेवर हीप खत्म होने और पोल के बीच रीबूट से बचने के लिए सीधे LittleFS में स्ट्रीम करता है। DynamicJsonDocument को हॉट पाथ से दूर रखें; स्टैक बफ़र और सीधे लेखन को प्राथमिकता दें।

अनुकूलन युक्तियाँ

बिल्ड टारगेट

लक्ष्य फ्लैश बजट RAM बजट
PteronautOS_ESP8285_2400_RX ≤ 60% ≤ 65%

मैनिफेस्ट विस्तार के लिए मार्जिन छोड़ने हेतु 60% फ्लैश / 65% RAM से अधिक करने से मना करता है। हर फीचर के बाद मापें; हरा बिल्ड तब तक जीवित बिल्ड नहीं है जब तक वह फ्लैश न हो और उसका बूट लॉग पढ़ा न जाए।