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

Phi*_*ich 6 memory mono resources android xamarin

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

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

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

使用了一些标准工具(MAT是主要起点)后,我一直在努力确定究竟是什么消耗了这个内存.

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

Ale*_*ger 3

这个邮件列表线程可能很有趣:http://mono-for-android.1047100.n5.nabble.com/RAM-Usage-of-applications-writing-with-monodroid-td5711289.html(它是2012年的,所以它是从那时起可能已经有所改进)。

一些关键点:

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

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

您可能还想查看Xamarin 文档中的内存和性能最佳实践以及垃圾收集文章。