我有一个启动对话框按钮,它创建一个窗口的视图模型并将其绑定到窗口(它启用了 UI 虚拟化)。第一次单击时启动对话框只需 1 秒钟。但是,如果我非常频繁地或背靠背地打开同一个对话框,它会开始花费更多时间来填充网格数据源以进行下一次迭代。如果我暂停一下,然后再次打开窗口,则只需大约 1 或 2 秒。
for first time populating the item source it take only 1 second:
next time populating the item source it takes 2 second
next time populating the item source it takes 3 second
next time populating the item source it takes 6 second
next time populating the item source it takes 8 second
但是,如果我不推荐调用 GC.Collect(),那么填充网格数据源总是需要大约 1 秒。但调用
Gc.Collect()
Gc.WaitForPendingFinalizer()
Gc.Collect()
每次迭代都花费了我一些时间。
我知道打电话GC.Collect
不是一个好的选择。任何人都可以建议我如何提高我的应用程序性能。
我更关心用户机器,因为我的机器配置非常好,而用户机器可能没有那么快。