16 केबी वाले पेज साइज़ के लिए ऑप्टिमाइज़ करना

ज़्यादातर प्रोग्रामिंग टास्क के लिए, पेज का साइज़ मायने नहीं रखता. हालांकि, अगर आपको ज़्यादा मेमोरी की ज़रूरत है, आपको बेहतर तरीके से ऑप्टिमाइज़ किए गए कॉम्पोनेंट पर काम करना है, आपको सीधे तौर पर कर्नल से इंटरफ़ेस करना है या आपको फ़ाइलों में बड़े पैमाने पर बदलाव करना है, तो Android के 16 केबी पेज साइज़ पर स्विच करने से, परफ़ॉर्मेंस के विश्लेषण में कुछ बातों का ध्यान रखना पड़ सकता है. इस दस्तावेज़ में, पेज के साइज़ से परफ़ॉर्मेंस पर पड़ने वाले असर के बारे में बताया गया है.

मेमोरी से जुड़ी समस्याओं का पता लगाना

mmap का इस्तेमाल करके मेमोरी असाइन करते समय, पक्का करें कि आपने हमेशा ऐसा आर्ग्युमेंट पास किया हो जो पेज के साइज़ का मल्टीपल हो. अगर 16 केबी पेज साइज़ वाले सिस्टम पर 4096 बाइट का अनुरोध किया जाता है, तो कर्नेल 16 KB बाइट आवंटित करता है. इससे 12 KB स्पेस बर्बाद होता है. /proc/maps, /proc/smaps देखना या Android टूल showmap का इस्तेमाल करना (यह टूल, इस्तेमाल न की गई जगह को अच्छी तरह से प्रिंट करता है) या अपनी प्रोसेस की strace की जांच करना, इन समस्याओं का पता लगाने में मदद कर सकता है.

डिस्क स्थान की समस्याएं ठीक करना

Android 15 और इसके बाद के वर्शन पर लॉन्च होने वाले डिवाइसों में, डिफ़ॉल्ट रूप से 16 केबी अलाइन किए गए ईएलएफ़ होते हैं. साथ ही, कई ऐप्लिकेशन भी 16 केबी अलाइन किए गए होते हैं. सिस्टम कोई भी हो, कई फ़ाइलों में पैडिंग बढ़ गई है. डिस्क पर फ़ाइल का असल साइज़ देखने के लिए, du <my file> का इस्तेमाल किया जा सकता है. इससे यह पता चलता है कि कोई फ़ाइल कितने किलोबाइट की है. किसी फ़ाइल का साइज़ देखने के लिए, du -b <my file> का इस्तेमाल किया जा सकता है. इससे आपको साइज़, बाइट में दिखता है. जब फ़ाइल का साइज़, असल साइज़ से बड़ा दिखता है, तो इसका मतलब है कि फ़ाइल को कंप्रेस किया गया है या उसमें कुछ हिस्से खाली हैं. जब फ़ाइल का साइज़, असल साइज़ से कम होता है, तो हो सकता है कि फ़ाइल में अतिरिक्त मेटाडेटा मौजूद हो या फ़ाइल को डिस्क पर अलग-अलग हिस्सों में बांटा गया हो. इन जांचों का इस्तेमाल करके, डिस्क पर मौजूद फ़ाइलों के असली साइज़ का विश्लेषण किया जा सकता है.