【发布时间】:2013-01-13 06:19:40
【问题描述】:
我有一个使用大量内存的应用程序,但现在我无法改变这个事实。我的问题是我有一个我想执行的操作并提供一个进度对话框,但似乎显示 xaml 进度窗口导致 GC.Collect 被调用 10 次!有什么想法可以优化打开进度窗口吗?
根据我的 Ants Profiler,导致 GC.Collect 的调用是
System.Window.ShowDialog() ->
..
..
System.Windows.Media.Imaging.BitmapSource.CreateCachedBitmap ->
SafeMILHandle.UpdateEstimatedSize ->
SafeMILHandleMemoryPressure.ctor ->
MemoryPressure.Add ->
MemoryPressure.ProcessAdd ->
GC.Collect
【问题讨论】:
-
你能告诉我如何超频我的 CPU 吗?可能不会,因为你甚至不知道我有什么样的硬件。同样,很难优化您看不到的代码。发布您的代码。
-
导致垃圾回收的调用堆栈都是 .NET 程序集,所以我不知道我的代码的哪一部分值得发布。
标签: c# performance xaml memory