प्रकाशित 2026-04-11
RAM ओवरहेड कम करने के लिए मैंने Pironman 5 सर्विस को Go में फिर से लिखा
मैं Raspberry Pi 5 सर्वर पर SunFounder Pironman 5 इस्तेमाल करता हूँ, और मुझे सच में इस केस का हार्डवेयर पसंद है। लेकिन मुझे सॉफ्टवेयर ओवरहेड पसंद नहीं आया।
मूल Python-आधारित सर्विस फैन कंट्रोल, RGB, OLED पेज, कॉन्फ़िग, लॉग्स और एक डेमन के लिए लगभग 70-110 MB RAM इस्तेमाल कर रही थी। यह सर्विस वास्तव में जो करती है, उसके हिसाब से मुझे यह बहुत भारी लगी।
इसलिए मैंने अपने उपयोग के लिए Pironman 5 essentials डेमन को Go में फिर से लिखा:
https://github.com/l-you/pironman5-go
वर्तमान वर्ज़न सख़्त मायने में ड्रॉप-इन रिप्लेसमेंट नहीं है। मैंने कुछ APIs बदले, कुछ व्यवहार सरल किए, और कुछ फीचर्स जो मैं चाहता था जोड़े—जैसे मोनोक्रोम बिटमैप या PBM फ़ाइलों से कस्टम OLED इमेज।
मैंने डैशबोर्ड भी छोड़ दिया। मेरे उपयोग के लिए वह आवश्यक नहीं था।
अगर किसी को ऐसा वर्ज़न चाहिए जो मूल essentials व्यवहार के ज़्यादा करीब हो—डैशबोर्ड के बिना और उसी API सरफेस के साथ—तो उसके लिए एक पुराना commit मौजूद है:
https://github.com/l-you/pironman5-go/commit/faeff568730a411a95ee3708839ab3612b9ee1f4
मेरे Raspberry Pi 5 पर, इस री-राइट ने RAM उपयोग को लगभग 10 MB तक घटा दिया, idle CPU थोड़ा कम किया, और restart time को लगभग 5s से घटाकर 30ms से भी कम कर दिया।
मैं प्रोजेक्ट की स्थिति के बारे में भी स्पष्ट रहना चाहता हूँ। मैंने इसे व्यक्तिगत उद्देश्यों के लिए बनाया है। मैं इसे खुद इस्तेमाल करता हूँ, लेकिन मैं उचित versioning, CI, या verified binary builds का वादा नहीं करता। अगर कोई इसे सावधानी से इस्तेमाल करना चाहता है, तो सोर्स से बिल्ड करना ज़्यादा सुरक्षित विकल्प है।
एक और व्यावहारिक विवरण: शुरुआती वर्ज़न के लिए implementation का लगभग सारा काम AI ने किया, tests सहित। मैंने मुख्यतः constraints, दिशा, और यह निर्णय दिए कि क्या रहना चाहिए, क्या बदलना चाहिए, और क्या हटाना चाहिए। पहली उपयोगी वर्ज़न जितनी अच्छी निकली, उससे मैं सच में प्रभावित हूँ।
यह repository इसलिए मौजूद है क्योंकि मैं अपने Raspberry Pi पर एक हल्की Pironman 5 control service चाहता था। मेरे लिए यह समस्या को पर्याप्त रूप से हल कर देती है।
