在 MonoTouch 应用程序中查看内存使用情况

Posted

技术标签:

【中文标题】在 MonoTouch 应用程序中查看内存使用情况【英文标题】:Watching memory usage in MonoTouch App 【发布时间】:2013-01-28 20:19:33 【问题描述】:

如何使用 MonoTouch 从应用程序内部找出我的应用程序使用了多少内存?

我基本上想要这个:

Watching memory usage in ios

它调用诸如“task_info”之类的东西

但对于 MonoTouch(如果仅适用于 iOS 也可以)。我不想要一个内存工具,比如 Instruments 等.

【问题讨论】:

【参考方案1】:

我看到至少两个选项:

将“task_info”代码复制到一个新的 Xcode 项目中,并从中创建一个静态库。然后在 MonoTouch 项目中链接该静态库,并使用 P/Invoke 调用 logMemUsage。

将所有“task_info”代码翻译成 C#(在需要时使用 P/Invokes 调用本机方法)。

我可能会选择第一个选项,我相信它不太容易出错。

【讨论】:

谢谢,我希望有人会为我做这件事;) 使用 GC.GetTotalMemory() 怎么样。这是对 iOS 应用程序使用的内存的合理衡量吗?它的值似乎与 Instruments 有点不同。 @Bbx: GC.GetTotalMemory() 只会报告 Xamarin.iOS 使用的托管内存,它不会报告 iOS 本身正在使用的任何内存。

以上是关于在 MonoTouch 应用程序中查看内存使用情况的主要内容,如果未能解决你的问题,请参考以下文章

Monotouch内存限制崩溃

iOS 或 MonoTouch 中的固有内存泄漏?

线程/计时器的 MonoTouch 内存问题

Monotouch/WCF:如何在没有 svcutil 的情况下使用 wcf 服务

如何在模拟器中为 MonoTouch 应用程序生成 .dSYM?

如何查看手机内存和CPU使用情况