我们有一个混合了.NET 2.0和本机C++的应用程序。在我们的测试中,我们有一种可以自动循环一系列项目的模式。一个项目打开,运行,关闭,重复。这些步骤中的每一步都需要创建/销毁窗口(准确地说,winforms)。最近我们遇到了一些奇怪的表现。运行几个小时后,开启和关闭部分减速(阻止GUI线和显示半画面等)。现在可以很容易地将这个问题解决为资源泄漏......但是我们正在跟踪句柄和内存,而内存略微增长,没有什么可以指示这个级别的问题。手柄是稳定的。所以也许悬挂事件处理程序......仍然需要调查。但令我困惑的是,关闭应用程序并重新启动应用程序并不能恢复最初的性能。在重新启动操作系统(赢得XP)之前它仍然很慢,然后性能再次开始活跃。这让我感到困惑,因为我认为关闭应用程序将回收所有资源。有什么想法吗?应用程序性能下降
应用程序性能下降
回答
我们正在泄漏窗口类
听起来像是可能的GDI句柄泄漏。垃圾收集器不会自动拾取GDI objects。
.NET Memory Profiler(http://memprofiler.com/)在跟踪这些(有14天的试用版)方面做得很好。
你有没有见过这种情况:
我将第二次使用Memory Profiler。它可以让你拍摄快照并对它们进行比较 - 这样你就可以在一次迭代中拍摄快照,在下一张照片上拍摄另一张照片,并对它们进行区分 - 你可以准确地看到在你的应用程序的常见迭代之间增长的东西。 – stusmith 2009-10-28 15:24:43
我有.NET内存分析器,并会尝试 - 但重新启动应用程序(无需重新启动)不能解决问题的事实不会解释任何过程增长。 – user109078 2009-10-28 16:17:40
对于某些有限的系统资源,例如GDI句柄,这不是真的。 – 2009-10-29 00:44:12
你假设它的资源泄漏(这不是一个错误的猜测),但它可能是别的。
您是否尝试过使用性能分析器?
- 1. 电梯应用程序性能下降
- 2. 性能下降 - IIS或应用程序?
- 3. Websharper应用程序性能下降,可能的内存泄漏
- 4. rails应用程序的性能由于日志而下降
- 5. DataGridViewRow在.NET中的性能下降C#应用程序
- 6. 由于关联导致Rails应用程序性能下降?
- 7. Safari中混合AngularJS和Angular应用程序的性能下降
- 8. Activator.CreateInstance性能下降
- 9. 性能下降MySql
- 10. Easeljs性能下降?
- 11. logstash性能下降
- 12. iPad上的性能突然下降使用renderMode = GPU的AIR应用程序
- 13. C#由于垃圾收集导致应用程序性能下降?
- 14. 角色自定义应用程序中的性能下降。 DevExpress eXpressAppFramework(XAF)
- 15. SVN(Subversion)会降低系统/应用程序的性能吗?
- 16. jdbc resultset性能下降
- 17. PHP file_get_contents($ url)性能下降
- 18. 外键null - 性能下降
- 19. PySCIPOpt的性能下降
- 20. PHP MongoDB性能下降
- 21. 终极版性能下降
- 22. EJB 3.2性能下降
- 23. iPhone的UITableViewCell性能下降
- 24. SQL Server性能下降
- 25. elasticsearch查询性能下降
- 26. ID3D11DeviceContext ::地图性能下降
- 27. Sql查询性能下降
- 28. 程序运行速度慢,性能下降
- 29. 异常处理程序导致任何性能下降?
- 30. 使用NOT的性能下降
您应该在减速前后的分析器中运行应用程序,并比较两个结果。所有突出显着不同的东西都值得调查。有很多免费的,或者很好的,或者免费的,很好的配置文件,只需要尝试几个,然后选择一个您感觉舒适的配置。 – Rom 2009-10-29 08:13:42