2010-02-02 47 views
0

在我的Windows服务中,在巨大的工作负载下运行数小时后,我遭受了“内存不足”异常的困扰。 我用下面的性能计数器来检测内存泄漏:越来越多的“虚拟字节”性能计数器

  • 字节的所有堆

  • 专用字节
  • 虚拟字节

第2个计数器会向上和向下定期...我看不出他们有什么不妥。 但第三个增长速度非常缓慢,柜台也在升降,但最终会逐渐增加。 这是什么意思?

我的Win服务是.NET,它从C++ DLL调用一些函数,也使用第三方,它有一些非托管代码。

这是否表明托管代码/非托管代码中存在内存泄漏?或者干脆这不会帮助?

感谢

+0

没有足够的信息来回答问题。你在C#代码中分配内存吗?你可以发布代码吗? – 2010-02-02 14:40:49

+0

C++ DLL不是我的代码,它们都是第三方,我在我的托管代码中分配和释放大量资源,我不能将它们全部发布,它们太多了,其中一些与GDI +,ADO有关。 NET和许多其他类型的对象。我也相信非托管代码经常这样做(由于其功能) – 2010-02-02 15:02:58

回答

1

看看在clr profiler这样就可以监视您的使用。如果它仅在hudge负载下崩溃,那么可能不会有任何错误,因为处理负载的新设计约束是如此之多。

+0

嗯,我不知道为什么这个分析器不喜欢我的Win服务,他总是显示一个对话框:“等待服务启动公共语言运行时“,该配置文件能够启动该服务,但随后他正在显示该对话框。 – 2010-02-03 12:32:20