אופטימיזציה לגודל דף של 16 KB

ברוב משימות התכנות, גודל הדף לא רלוונטי. עם זאת, אם אתם מקצים כמויות גדולות של זיכרון, עובדים על רכיבים שעברו אופטימיזציה גבוהה, מבצעים אינטראקציה ישירה עם ליבת המערכת או מבצעים כמויות גדולות של מניפולציות בקבצים, המעבר של Android לגודל דף של 16 KB עשוי להוסיף שיקולים לניתוח הביצועים שלכם. במסמך הזה נסביר איך גודל הדף משפיע על דינמיקת הביצועים.

זיהוי בעיות בזיכרון

כשמקצים זיכרון באמצעות mmap, צריך לוודא שתמיד מעבירים ארגומנט שהוא כפולה של גודל הדף. אם מבקשים 4096 בייטים במערכת עם גודל דף של 16KB, הליבה מקצה 16 KB, ומתבזבזים 12 KB בייטים. כדי לזהות את הבעיות האלה, אפשר להציג את /proc/maps, /proc/smaps (או להשתמש בכלי Android‏ showmap שמדפיס את השטח המבוזבז בצורה טובה), או לבדוק את strace של התהליך.

זיהוי בעיות בשטח הדיסק

במכשירים עם Android 15 ואילך, קובצי ה-ELF מיושרים ל-16 KB כברירת מחדל, וגם הרבה אפליקציות מיושרות ל-16 KB. בכל המערכות, הרבה קבצים כוללים ריווח גדול יותר. כדי לראות את הגודל האמיתי בדיסק, אפשר להשתמש ב-du <my file> כדי לראות כמה קילובייט תופס קובץ. כדי לראות את הגודל הנראה של קובץ, אפשר להשתמש ב-du -b <my file>, שבו מוצג הגודל בבייטים. אם הגודל הנראה גדול מהגודל האמיתי, בדרך כלל המשמעות היא שהקובץ דחוס או שיש בו אזורים דלילים. אם הגודל הנראה קטן מהגודל האמיתי, סביר להניח שהקובץ מכיל מטא-נתונים נוספים או שהוא מפולג בדיסק. באמצעות הבדיקות האלה, אפשר לנתח את הגודל האמיתי של הקבצים בדיסק.