Xamarin Android应用程序内存使用情况

时间:2014-09-14 12:53:48

标签: android memory mono resources xamarin

我一直在查看我创建的xamarin android应用程序的内存使用情况,与其他设备上的其他运行本机Android应用程序相比,它看起来相当高(运行一段时间后大约70Mb)。我开始对此进行一些调查,最初是通过将我的应用程序的内存使用情况与其他xamarin android应用程序进行比较。我查看了一些示例应用程序,例如" Employees" (可在xamarin工作室首页或xamarin网站上找到)。

我注意到,当这个应用程序(和我的应用程序)启动时,它们会一直使用大约25-30Mb的RAM,即使我没有在主启动器活动中加载布局,也会发生这种情况。这是预期的吗?这似乎相当高,因为在Android设备上运行的许多其他应用程序可能只会在运行几天后获得这么高?如果是这样,那么我只需要尽力使应用程序的其余部分尽可能高效,但我想澄清一下这个观察是否是由其他人做出的?

与此同时,我正在查看android开发人员网站关于最小化内存使用量(上下文生命周期和布局层次结构等)的建议,尽我所能来保持内存使用的其余部分更低。

使用了一些标准工具(MAT是主要的起点),我一直在努力确定究竟是什么耗尽了这个记忆。

所以我的问题是:这是Xamarin Android应用程序在加载第一个活动时消耗的典型内存量(甚至在加载布局之前)以及用于确定每个内存的最佳xamarin兼容工具的内容是什么过程正在使用。

1 个答案:

答案 0 :(得分:3)

这个邮件列表主题可能很有趣:http://mono-for-android.1047100.n5.nabble.com/RAM-Usage-of-applications-written-with-monodroid-td5711289.html(它来自2012年,所以从那时起它可能会有所改进)。

一些关键点:

  
    

我对应用程序的RAM使用感兴趣。我们用monodroid编写了一个使用增强现实的应用程序,它的使用量通常是50MB-60MB。

  
     

请注意,adb shell ps数字是众所周知的误导[...]。   要确定Mono GC堆大小,应使用GC.GetTotalMemory()

您可能还想查看Xamarin文档中的Memory and Performance Best PracticesGarbage Collection文章。