【发布时间】:2017-08-08 15:45:45
【问题描述】:
我在一些旧的 Androiddevices 上运行我的应用程序时遇到了一些问题,因此我下载了 Visual Studio Professionel 的跟踪,因为它有 Diagnostics Tools。
我尝试在我的应用程序中做一些简单的事情,但我发现这很吓人,Xamarin.Forms.BindableProperty+BindablePropertyContext 在 UWP 中的大小(当然以字节为单位)为 2.196.088,您可以在以下屏幕转储中看到。
在示例中,我刚刚浏览了 5 页。其中两页有ListViews,其中一页已被清空3次,并填充了新数据。
所以我必须在清除ListView 后拨打GC.Collect() 吗?
【问题讨论】:
-
不建议调用
GC.Collect(),因为它可能会破坏代码中的其他内容。Clear()forListView不会在您的对象上调用Dispose(),这意味着GC必须花时间确保在收集它们之前不会在其他任何地方引用这些对象。如果你愿意,你可以循环使用Dispose()ListView中的每个项目,这将确保你销毁它们。看看这里。 stackoverflow.com/questions/1969024/… -
@Everyone
GC.Collect()永远不会破坏任何其他东西,它只会让应用程序变慢,因为它是 CPU 密集型工作。 -
@AkashKava 真的,对不起。它会消耗性能,不会破坏正在运行的代码,但会大大减慢它的速度......就像很多
标签: c# android xamarin.android xamarin.forms