این سند بهینهسازی عملکرد را برای بهینهسازی عملکرد سختافزار شرح میدهد.
مشخصههای OpenGLRenderer (libhwui)
این سند ویژگیهای کنترل خط لوله پردازش شتابدار سختافزاری دوبعدی Android را شرح میدهد. این داراییها را در
device.mk بهعنوان PRODUCT_PROPERTY_OVERRIDES تنظیم کنید.
ویژگیهای همه نسخههای Android
| دارایی | نوع | مقدار پیشفرض | شرح |
|---|---|---|---|
ro.zygote.disable_gl_preload |
boolean |
false |
پیشبارگیری درایورهای EGL/GL را در Zygote هنگام راهاندازی فعال یا غیرفعال میکند.
وقتی این ویژگی false باشد، Zygote درایورهای GL را با فراخوانی eglGetDisplay(EGL_DEFAULT_DISPLAY) پیشبار میکند. این کار کد کتابخانه پویا را در Zygote بار میکند تا آن را با همه فرایندهای دیگر همرسانی کند. اگر درایوری از همرسانی پشتیبانی نمیکند، این دارایی را روی true تنظیم کنید. |
داراییهای Android 8.0 و نسخههای پایینتر
| دارایی | نوع | مقدار پیشفرض | شرح |
|---|---|---|---|
ro.hwui.disable_scissor_opt |
boolean |
false |
بهینهسازی قیچی را فعال یا غیرفعال میکند. مقادیر پذیرفتنی
وقتی غیرفعال باشد، OpenGLRenderer آزمایش قیچی GL را فعال نگه میدارد و مستطیل قیچی را درصورت نیاز تغییر میدهد. برخیاز واحدهای پردازش گرافیکی (برای مثال، SGX 540) وقتی مستطیل قیچی را بیشتر از فعال یا غیرفعال کردن مکرر آزمایش قیچی تغییر میدهند عملکرد بهتری دارند. |
ro.hwui.texture_cache_size |
float |
24 |
اندازه حافظه نهان بافت را برحسب مگابایت برای هر پردازش تعریف میکند. توصیه میکنیم از حافظه نهانیای استفاده کنید که به اندازه کافی بزرگ باشد تا چندین صفحه بافت ۳۲ بیتی را در خود جای دهد. برای مثال، در نمایشگر ۱۲۸۰×۸۰۰، میانگیر تمامصفحه حدود ۴ مگابایت استفاده میکند، بنابراین حافظه نهان باید حداقل ۲۰ مگابایت باشد. |
ro.hwui.layer_cache_size |
float |
16 |
اندازه حافظه نهان لایههای هر پردازش را برحسب مگابایت تعریف میکند. توصیه میکنیم از حافظه نهانی استفاده کنید که بهاندازه کافی بزرگ باشد تا بتواند چهار برابر صفحه را در ۳۲ بیت نگه دارد. برای مثال، در نمایشگر ۱۲۸۰x۸۰۰، بافر تمامصفحه حدود ۴ مگابایت استفاده میکند، بنابراین حافظه نهان باید حداقل ۱۶ مگابایت باشد. |
ro.hwui.gradient_cache_size |
float |
0.5 |
اندازه حافظه نهان گرادیانهای هر فرایند را برحسب مگابایت تعریف میکند. یک گرادیان واحد معمولاً بین ۱ تا ۴ کیلوبایت از حافظه را اشغال میکند. توصیه میکنیم از حافظه نهانی استفاده کنید که بهاندازه کافی بزرگ باشد تا حداقل ۱۲ گرادیان را در خود جای دهد. |
ro.hwui.patch_cache_size |
integer |
128 |
اندازه حافظه نهان ۹-تکهای را برحسب کیلوبایت برای هر فرایند تعریف میکند. این حافظه پنهان فقط دادههای رأس را نگه میدارد، بنابراین میتوانید آن را کوچک نگه دارید. هر رأس از ۴ عدد اعشاری یا ۱۶ بایت تشکیل شده است. |
ro.hwui.path_cache_size |
float |
4 |
اندازه حافظه نهان مسیرهای هر فرایند را به مگابایت تعریف میکند. توصیه میکنیم از حافظه نهانهای استفاده کنید که به اندازه کافی بزرگ باشد تا حداقل یک صفحه از بافتهای ۳۲ بیتی را در خود جای دهد. برای مثال، در نمایشگر ۱۲۸۰x۸۰۰، بافر تمامصفحه حدود ۴ مگابایت استفاده میکند، بنابراین حافظه نهان باید حداقل ۴ مگابایت باشد. |
ro.hwui.shape_cache_size |
float |
1 |
اندازه حافظه نهان شکلهای هر پردازش را برحسب مگابایت تعریف میکند. این مقدار توسط چندین حافظه نهان، مانند دایرهها و مستطیلهای گرد، استفاده میشود. توصیه میکنیم از حافظه نهانی استفاده کنید که حداقل یک صفحه ۸ بیتی را در خود جای دهد. برای مثال، در نمایشگر ۱۲۸۰x۸۰۰، بافر تمامصفحه حدود ۱ مگابایت استفاده میکند، بنابراین حافظه نهان باید حداقل ۱ مگابایت باشد. |
ro.hwui.drop_shadow_cache_size |
float |
2 |
اندازه حافظه پنهان سایه نوشتار برای هر فرایند را برحسب مگابایت تعریف میکند. توصیه میکنیم از حافظه نهانی استفاده کنید که بهاندازه کافی بزرگ باشد تا بتواند دو صفحه از بافتهای ۸ بیتی را نگه دارد. برای مثال، در نمایشگر ۱۲۸۰x۸۰۰، بافر تمامصفحه حدود ۱ مگابایت استفاده میکند، بنابراین حافظه نهان باید حداقل ۲ مگابایت باشد. |
ro.hwui.r_buffer_cache_size |
float |
2 |
اندازه حافظه نهان میانگیرهای پردازش رندر را به مگابایت تعریف میکند. توصیه میکنیم از حافظه نهانهای استفاده کنید که به اندازه کافی بزرگ باشد تا دو برابر صفحه را در ۸ بیت نگه دارد. برای مثال، در نمایشگر ۱۲۸۰x۸۰۰، بافر تمامصفحه حدود ۱ مگابایت استفاده میکند، بنابراین حافظه نهان باید حداقل ۲ مگابایت باشد. اگر دستگاه از بافرهای شابلون ۴ بیتی یا ۱ بیتی پشتیبانی کند، حافظه نهان میتواند کوچکتر باشد. |
ro.hwui.texture_cache_flush_rate |
float |
0.6 |
درصد حافظه نهان بافت را که پساز پاکسازی حافظه باید حفظ شود تعریف میکند. وقتی سیستم نیاز به بازپسگیری حافظه در همه برنامهها داشته باشد، تخلیه حافظه را راهاندازی میکند. توصیه میکنیم در چنین شرایطی حدود ۵۰٪ از حافظه نهان را آزاد کنید. |
ro.hwui.text_small_cache_width |
integer |
1024 |
عرض حافظه نهان قلم پیشفرض را به پیکسل تعریف میکند. حد بالایی به سرعت بارگذاری بافتها توسط GPU بستگی دارد. توصیه میکنیم از حداقل ۱۰۲۴ پیکسل و حداکثر ۲۰۴۸ پیکسل استفاده کنید. همچنین، از مقدار توان دو استفاده کنید. |
ro.hwui.text_small_cache_height |
integer |
256 |
ارتفاع حافظه نهان قلم پیشفرض را به پیکسل تعریف میکند. حد بالایی به سرعت بارگذاری بافتها توسط GPU بستگی دارد. توصیه میکنیم از حداقل ۲۵۶ پیکسل و حداکثر ۱۰۲۴ پیکسل استفاده کنید. |
ro.hwui.text_large_cache_width |
integer |
2048 |
عرض حافظه نهان قلم بزرگ را به پیکسل تعریف میکند. این حافظه نهان برای حروف تصویریای که برای قرار گرفتن در حافظه نهان قلم پیشفرض خیلی بزرگ هستند استفاده میشود. حد بالا به سرعت بارگذاری بافتها توسط GPU بستگی دارد. توصیه میکنیم حداقل از ۲۰۴۸ پیکسل و حداکثر از ۴۰۹۶ پیکسل استفاده کنید. همچنین، از مقدار توان دو استفاده کنید. |
ro.hwui.text_large_cache_height |
integer |
512 |
ارتفاع حافظه نهان قلم بزرگ را به پیکسل تعریف میکند. از حافظه نهان قلم بزرگ برای حروف تصویریای که برای قرار گرفتن در حافظه نهان قلم پیشفرض خیلی بزرگ هستند نیز استفاده میشود. حد بالایی به سرعت بارگذاری بافتها توسط GPU بستگی دارد. توصیه میکنیم از حداقل ۵۱۲ پیکسل و حداکثر ۲۰۴۸ پیکسل استفاده کنید. همچنین، از مقدار توان دو استفاده کنید. |
hwui.text_gamma_correction |
string |
lookup |
تکنیک تصحیح گامای نوشتار را انتخاب میکند. چهار انتخاب ممکن وجود دارد:
lookup استفاده کنید که ازنظر کیفیت، سرعت، و استفاده از حافظه،
سازش خوبی ارائه میدهد.
|
hwui.text_gamma |
float |
1.4 |
مقدار گامای استفادهشده برای تصحیح گامای نوشتار را تعریف میکند. میتوانید این مقدار را براساس نمایشگر دستگاه تنظیم کنید. |
hwui.text_gamma.black_threshold |
integer |
64 |
آستانه درخشندگی را که تصحیح گامای سیاه زیر آن اعمال میشود تعریف میکند. مقدار باید در محدوده ۰ تا ۲۵۵ باشد. |
hwui.text_gamma.white_threshold |
integer |
192 |
آستانه درخشندگی را تعریف میکند که بالاتر از آن تصحیح گامای سفید اعمال میشود. مقدار باید در محدوده ۰ تا ۲۵۵ باشد. |
hwui.use_gpu_pixel_buffers |
boolean |
true |
استفاده از PBO در سختافزار OpenGL ES 3.0 را فعال یا غیرفعال میکند. پردازنده از PBO برای انجام بارگذاریهای بافت ناهمزمان، بهویژه برای حافظه نهان قلم استفاده میکند. این دارایی باید همیشه فعال بماند، اما اگر PBO باعث خرابی یا عملکرد ضعیف شود، میتوانید آن را درطول راهاندازی یا توسعه غیرفعال کنید. به همین دلیل است که دارایی فقط خواندنی نیست. |