اگر در حال نوشتن کد بومی هستید و نگران استفاده از حافظه آن هستید، مفید است که تخصیص بومی برنامه خود را نمایه کنید تا بفهمید آیا فرصتی برای بهینه سازی وجود دارد یا خیر.
چرا باید حافظه برنامه خود را نمایه کنید
Android یک محیط حافظه مدیریت شده را فراهم می کند — وقتی Android تشخیص می دهد که برنامه شما دیگر از برخی اشیاء استفاده نمی کند، زباله جمع کننده حافظه استفاده نشده را به پشته باز می کند. نحوه یافتن حافظه استفاده نشده اندروید به طور مداوم در حال بهبود است، اما در برخی از نسخههای اندروید، سیستم باید برای مدت کوتاهی کد شما را متوقف کند. بیشتر اوقات، مکث ها غیرقابل درک است. با این حال، اگر برنامه شما سریعتر از آنچه سیستم میتواند آن را جمعآوری کند، حافظه را تخصیص میدهد، ممکن است برنامه شما به تأخیر بیفتد در حالی که جمعآورنده حافظه کافی برای برآورده کردن تخصیصهای شما آزاد میکند. تأخیر ممکن است باعث شود برنامه شما فریم ها را رد کند و باعث کندی قابل مشاهده شود.
برای کسب اطلاعات در مورد شیوههای برنامهنویسی که میتوانند استفاده از حافظه برنامه شما را کاهش دهند، مدیریت حافظه برنامه خود را بخوانید.
نمای کلی تخصیص های بومی
وقتی کار ** Track Memory Consumption (Native Allocations)** را اجرا میکنید ، Android Studio Profiler تخصیصها و تخصیصهای اشیاء را در کد بومی برای دوره زمانی که شما مشخص میکنید ردیابی میکند و اطلاعات زیر را ارائه میکند:
- تخصیص : تعداد اشیایی که با استفاده از
malloc()
یا عملگرnew
در طول دوره زمانی انتخاب شده تخصیص داده شده است. - Deallocations : تعداد اشیایی که با استفاده از
free()
یا عملگرdelete
در طول دوره زمانی انتخاب شده توزیع شده اند. - اندازه تخصیص ها : اندازه جمع آوری شده در بایت همه تخصیص ها در طول دوره زمانی انتخاب شده.
- Dealocations Size : اندازه جمع آوری شده در بایت از تمام حافظه آزاد شده در طول دوره زمانی انتخاب شده.
- تعداد کل : مقدار موجود در ستون تخصیص منهای مقدار در ستون اختصاصها .
- Remaining Size : مقدار موجود در ستون اندازه تخصیص منهای مقدار ستون Deallocations Size .
تب Visualization یک نمای تجمیع شده از تمام اشیاء مربوط به کد بومی در پشته تماس را در بازه زمانی انتخاب شده نشان می دهد. اساساً به شما نشان میدهد که پشته تماس با نمونههای نشاندادهشده چه مقدار از حافظه را اشغال میکند. ردیف اول نام موضوع را نشان می دهد. به طور پیش فرض، اشیاء بر اساس اندازه تخصیص از چپ به راست انباشته می شوند. از منوی کشویی برای تغییر ترتیب استفاده کنید.
به طور پیش فرض، نمایه ساز از اندازه نمونه 2048 بایت استفاده می کند: هر بار که 2048 بایت حافظه تخصیص داده می شود، یک عکس فوری از حافظه گرفته می شود. اندازه نمونه کوچکتر منجر به عکس های فوری بیشتر می شود و داده های دقیق تری در مورد استفاده از حافظه به دست می دهد. اندازه نمونه بزرگتر داده های دقیق کمتری به دست می دهد، اما منابع سیستم کمتری مصرف می کند و عملکرد را در حین ضبط بهبود می بخشد. برای تغییر اندازه نمونه، به ویرایش پیکربندی ضبط مراجعه کنید.