برای اکثر کارهای برنامه نویسی، اندازه صفحه مرتبط نیست. با این حال، اگر حجم زیادی از حافظه را تخصیص میدهید، روی اجزای بسیار بهینهشده کار میکنید، مستقیماً با هسته ارتباط برقرار میکنید، یا حجم زیادی از دستکاری فایلها را انجام میدهید، انتقال Android به اندازه صفحه 16 کیلوبایت میتواند ملاحظاتی را به تحلیل عملکرد شما اضافه کند. این سند برخی از راه هایی را که اندازه صفحه پویایی عملکرد را تغییر می دهد برجسته می کند.
تشخیص مشکلات حافظه
هنگامی که حافظه را با mmap
تخصیص می دهید، مطمئن شوید که همیشه آرگومان هایی را ارسال می کنید که مضربی از اندازه صفحه است. اگر در سیستمی با اندازه صفحه 16 کیلوبایت، 4096
بایت درخواست کنید، هسته 16 KB
را اختصاص می دهد و 12 KB
فضا را هدر می دهد. مشاهده /proc/maps
، /proc/smaps
(یا استفاده از ابزار Android showmap
که فضای تلف شده را به خوبی چاپ میکند)، یا بررسی strace
فرآیند شما میتواند به شناسایی این موارد کمک کند.
مشکلات فضای دیسک را شناسایی کنید
دستگاههایی که در اندروید 15 و نسخههای جدیدتر راهاندازی میشوند بهطور پیشفرض دارای ELF تراز شده 16 کیلوبایتی هستند و بسیاری از برنامهها نیز 16 کیلوبایت تراز شدهاند. صرف نظر از سیستم، بسیاری از فایلها padding را افزایش دادهاند. برای مشاهده اندازه واقعی روی دیسک، میتوانید du <my file>
استفاده کنید تا ببینید یک فایل چند کیلوبایت دارد. برای مشاهده اندازه ظاهری یک فایل، می توانید du -b <my file>
استفاده کنید که اندازه را بر حسب بایت به شما نشان می دهد. وقتی اندازه ظاهری بزرگتر از اندازه واقعی است، این معمولاً به این معنی است که فایل فشرده شده یا دارای مناطق پراکنده است. هنگامی که اندازه ظاهری کوچکتر از اندازه واقعی است، فایل احتمالا دارای ابرداده اضافی است یا ممکن است بر روی دیسک تقسیم شود. با استفاده از این بررسی ها می توانید اندازه واقعی فایل های روی دیسک را تجزیه و تحلیل کنید.