Tối ưu hoá cho kích thước trang 16 KB

Đối với hầu hết các tác 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ổ lượng lớn bộ nhớ, làm việc trên các thành phần được tối ưu hoá cao, tương tác trực tiếp với nhân hoặc thực hiện thao tác với lượng lớn tệp, thì quá trình 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 quá trình 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 mà kích thước trang thay đổi động lực của 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 16 KB, thì nhân sẽ phân bổ 16 KB, lãng phí 12 KB không gian. Việc xem /proc/maps, /proc/smaps (hoặc sử dụng công cụ Android showmap giúp in ra khoảng trống một cách rõ ràng) 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 Android 15 trở lên có các 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ể dùng du <my file> để xem một tệp chiếm bao nhiêu kilobyte. Để xem kích thước thực tế của một tệp, bạn có thể sử dụng du -b <my file>. Lệnh này sẽ cho bạn biết kích thước tính bằng byte. Khi kích thước biểu kiến 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 biểu kiến 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ể được chia nhỏ 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.