- .NET मॉड्यूल फ़ाइल फ़ॉर्मैट की सीमाओं को खोजते हुए, मानक आउटपुट पर "Hello, World!" प्रिंट करने वाली सबसे छोटी executable फ़ाइल बनाई जाती है.
- प्रयोग के लिए, लेखक कुछ मनमाने नियम तय करता है: C# या CIL में implemented managed entry point का उपयोग, .NET Framework 4.x.x पर चलना, और किसी third-party dependency का न होना.
- executable फ़ाइल का आकार धीरे-धीरे घटाने के लिए nullable reference annotations को disable किया जाता है, .NET मॉड्यूल को हाथ से लिखा जाता है, imports और base relocations हटाए जाते हैं, अनावश्यक metadata हटाया जाता है, और ASCII strings के उपयोग को optimize किया जाता है.
- अंतिम परिणाम 889 bytes की executable फ़ाइल है, जो एक वैध .NET PE फ़ाइल के सैद्धांतिक रूप से संभव न्यूनतम आकार के बराबर है.
- लेख में executable फ़ाइल का आकार घटाने के लिए किए गए हर चरण के code examples और explanations दिए गए हैं.
- लेखक फ़ाइल फ़ॉर्मैट को समझने और executable फ़ाइल का आकार optimize करने के लिए रणनीतिक निर्णय लेने के महत्व पर ज़ोर देता है.
- string को अप्रयुक्त padding segment में ले जाने से फ़ाइल 13 bytes और छोटी हो जाती है.
- mscorlib के reference को हटाने से binary में जगह बचाई जा सकती है.
- .NET metadata directory के VersionString को काटने से कुछ और bytes बचते हैं.
- binary का अंतिम आकार 834 bytes है, और compress करने पर इसे 476 bytes तक और घटाया जा सकता है.
- भले ही यह एक निरर्थक project हो, मौजूदा systems की सीमाओं को खोजना मज़ेदार हो सकता है.
- लेखक संदर्भ के लिए पूरा source code GitHub पर उपलब्ध कराता है.
- लेख में reverse engineering, code golf, और PE फ़ाइल optimization पर चर्चा की गई है.
- लेखक अपना अनुभव साझा करता है और फ़ाइल का आकार घटाने पर आगे और खोजबीन को प्रोत्साहित करता है.
- इस लेख को लेखक ने CC BY 4.0 के तहत लाइसेंस किया है.
1 टिप्पणियां
Hacker News की राय