c# - Xamarin iOS 内存分析

标签 c# ios memory-management memory-leaks xamarin.ios

我有一个即将发布的应用程序,我们已经在 Xamarin.iOS 中编写了代码,尽管它在功能上运行得非常好,但该应用程序存在左右和中间的内存泄漏。对于大多数 Xamarin.iOS 开发人员来说,这无疑是一个常见问题,因为我读过许多帐户,说这个平台上的内存管理并不完全是它看起来的样子。尽管我一直在处理 View ,正确地要求 GC 收集并尽可能使用处理方法,但它仍然到处泄漏内存,没有关于原因的逻辑或明显的解释。

我遇到过可以支持内存沉积的方法,例如这个 - Xamarin iOS memory leaks everywhere但我发现很难识别并弄清楚究竟是什么在泄漏内存。

该应用程序非常简单,图像或文本不多,几乎是静态的信息页面,功能简单,但仍然在泄漏。我无法使用 Xamarin Profiler 找出到底是什么泄漏,因为我没有为此进行企业订阅,而且我还发现使用 Instruments 进行分析很麻烦而且不是很有帮助,因为它只识别内存泄漏但不完全是泄漏了哪些数据或以何种方法或部分代码泄漏。

我想从社区了解其他人使用什么来分析 Xamarin iOS 应用程序以及底线答案 - 垃圾收集是否在 Xamarin 中工作,如果有什么特别的我必须做才能让它工作,那会是什么?

谢谢大家

最佳答案

如果需要,您可以使用 Apple 的 Instruments 进行分析。我会问您是否正在取消订阅事件处理程序——尽管如果它像您所说的那样大的问题,我怀疑事件处理程序本身可能会导致问题。其他常见的内存泄漏罪魁祸首包括单例和计时器。我还会问是什么让您认为您有内存泄漏——也许您只有一个大型应用程序,在这种情况下,Xamarin 链接器或更少的泛型可能会有所帮助。

关于c# - Xamarin iOS 内存分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42878580/

相关文章:

c# - 在ViewModel(MVVM)内部使用 View 方法

c# - 通过 build.cake 而不是 Azure Devops 发布构建工件

C# 解析 SqlDbType 转换

ios - Appium检测IOS崩溃并获取崩溃日志

ios - PFUser 查询在第一次运行时不会更改变量

c# - 存在 System.ArgumentException 的 catch block ,但无论如何都没有捕获到异常,为什么?

iOS:链接错误而反对静态库,即使我没有引用该库中的任何代码

c++ - 指向动态分配对象的指针 vector : what could go wrong?

ios - b2Body 太多?

c++ - 链表节点的 RAII 风格 C++ 类