xamarin.ios – 使用profiller工具在monotouch和mvvmcross中进行Memoryleak狩猎

xamarin.ios – 使用profiller工具在monotouch和mvvmcross中进行Memoryleak狩猎,第1张

概述我一直致力于消除单声道触摸中的内存泄漏,并在过去几天中学到了很多东西,例如:几乎总是某些事件需要在垃圾收集成功之前解开:) 但现在我一直在使用profiller工具,我可以看到大部分内存都被字符串使用(或者似乎),请参阅以下screendump: 但是你可以看到单声道也使用了一些内存.我一直在处理我们的视图模型和视图,其中大部分是垃圾收集正确的.如果我查看它们有时被引用的字符串,我不知道该如何处理 我一直致力于消除单声道触摸中的内存泄漏,并在过去几天中学到了很多东西,例如:几乎总是某些事件需要在垃圾收集成功之前解开:)

但现在我一直在使用profiller工具,我可以看到大部分内存都被字符串使用(或者似乎),请参阅以下screendump:

但是你可以看到单声道也使用了一些内存.我一直在处理我们的视图模型和视图,其中大部分是垃圾收集正确的.如果我查看它们有时被引用的字符串,我不知道该如何处理这些信息.
 如果我可以减少字符串使用的内存量,你们有没有任何建议:)我试图找到任何教程或类似的东西可能会让这些数字意味着什么,但没有运气.任何帮助表示赞赏.

解决方法 根据我个人经验的一些答案:

>对于教程我只知道http://docs.xamarin.com/ios/Guides/Deployment%252c_Testing%252c_and_Metrics/Monotouch_Profiler
>我发现’反向引用’选项是最有用的功能之一 – 重要的不是你有很多字符串,而是拥有这些字符串的东西.
>我发现寻找这些错误的最佳方法是在简单的测试工具和/或测试序列中重现它们 – 随着应用程序变得越来越大,我使用越来越多的组件–MvvmCross,JsON.Net,sqlite-net等 – 越来越多的异步方式,然后我发现我需要减少这些组件的数量来识别泄漏.
>一旦你有一个简单的测试工具,HeapShot中的过滤器选项会有所帮助 – 因为它可以让你专注于已知命名空间中的类.
>一旦你有一个简单的测试工具,然后比较两个HeapShot也可以帮助 – 测试用户界面中的哪些 *** 作导致HeapShots之间的增加?

差异是重要的 – 一些图书馆故意将内容缓存在内存中 – 例如您的HeapShot图像中的某些PropertyInfo可能会被其中一个库故意缓存,以提高反序列化速度.

为便于交叉引用,请添加链接问题的链接:

> Garbage collecting issue with Custom viewbinding in mono touch and mvvmcross
> when to release objects in mono touch / mvvmcross
> MVVMCross – SqlBits Memory Leak
> Helping the GC in mono droid using mvvmCross

总结

以上是内存溢出为你收集整理的xamarin.ios – 使用profiller工具在monotouch和mvvmcross中进行Memoryleak狩猎全部内容,希望文章能够帮你解决xamarin.ios – 使用profiller工具在monotouch和mvvmcross中进行Memoryleak狩猎所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1068875.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存