Kể từ ngày 27 tháng 3 năm 2025, bạn nên sử dụng android-latest-release
thay vì aosp-main
để xây dựng và đóng góp cho AOSP. Để biết thêm thông tin, hãy xem phần Thay đổi đối với AOSP.
Tối ưu hoá cho kích thước trang 16 KB
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Đối với hầu hết các nhiệm vụ lập trình, kích thước trang không liên quan.
Tuy nhiên, nếu bạn đang phân bổ một lượng lớn bộ nhớ, xử lý các thành phần được tối ưu hoá cao, giao tiếp trực tiếp với hạt nhân hoặc thực hiện nhiều thao tác với tệp, thì việc chuyển đổi của Android sang kích thước trang 16 KB có thể thêm các yếu tố cần cân nhắc vào bản phân tích hiệu suất của bạn. Tài liệu này nêu bật một số cách kích thước trang thay đổi hiệu suất.
Phát hiện vấn đề về bộ nhớ
Khi bạn phân bổ bộ nhớ bằng mmap
, hãy đảm bảo rằng bạn luôn truyền một đối số là bội số của kích thước trang. Nếu bạn yêu cầu 4096
byte trên một hệ thống có kích thước trang là 16 KB, thì nhân sẽ phân bổ 16 KB
, lãng phí 12 KB
dung lượng. Việc xem /proc/maps
, /proc/smaps
(hoặc sử dụng công cụ Android showmap
để in không gian bị lãng phí một cách hiệu quả) hoặc kiểm tra strace
của quy trình có thể giúp phát hiện những vấn đề này.
Phát hiện sự cố về dung lượng đĩa
Theo mặc định, các thiết bị chạy trên Android 15 trở lên có tệp ELF được căn chỉnh 16 KB và nhiều ứng dụng cũng được căn chỉnh 16 KB. Bất kể hệ thống nào, nhiều tệp đã tăng khoảng đệm. Để xem kích thước thực trên ổ đĩa, bạn có thể sử dụng du <my file>
để xem một tệp có kích thước bao nhiêu kilobyte. Để xem kích thước hiển thị của một tệp, bạn có thể sử dụng du -b <my file>
. Hàm này sẽ cho bạn biết kích thước tính bằng byte. Khi kích thước hiển thị lớn hơn kích thước thực, điều này thường có nghĩa là tệp bị nén hoặc có các vùng thưa thớt. Khi kích thước hiển thị nhỏ hơn kích thước thực, tệp có thể có thêm siêu dữ liệu hoặc có thể bị phân tách trên đĩa. Bằng cách sử dụng các bước kiểm tra này, bạn có thể phân tích kích thước thực của các tệp trên đĩa.
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-07-27 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-07-27 UTC."],[],[],null,["# Optimize for 16 KB page size\n\nFor most programming tasks, the page size isn't relevant.\nHowever, if you're allocating large amounts of memory, working on\nhighly-optimized components, interfacing directly with the kernel, or doing\nlarge amounts of file manipulation, Android's transition to the 16 KB page\nsize could add considerations to your performance analysis. This document\nhighlights some ways page size changes the dynamics of performance.\n\nDetect memory issues\n--------------------\n\nWhen you allocate memory with `mmap`, make sure that you always pass an argument\nthat is a multiple of page size. If you request `4096` bytes on a system with a\n16 KB page size, then the kernel allocates `16 KB`, wasting `12 KB` of\nspace. Viewing `/proc/maps`, `/proc/smaps` (or using the Android tool `showmap`\nwhich prints the wasted space nicely), or checking the `strace` of your process\ncan help detect these.\n\nDetect disk space issues\n------------------------\n\nDevices launching on Android 15 and later have 16 KB aligned ELFs by\ndefault, and many applications are 16 KB aligned as well. Regardless of the\nsystem, many files have increased padding. To view the real size on disk, you\ncan use `du \u003cmy file\u003e` to see how many kilobytes a file takes. To view the\napparent size of a file, you can use `du -b \u003cmy file\u003e`, which shows you the size\nin bytes. When the apparent size is larger than real size, this usually means\nthat the file is compressed or has sparse regions. When the apparent size is\nsmaller than the real size, the file likely has extra metadata or may be split\nup on disk. Using these checks, you can analyze the real size of files on disk."]]