【发布时间】:2011-12-29 20:27:41
【问题描述】:
我是编写 Windows 服务的新手。我决定编写一个通过 Twilio 进行出站呼叫的程序。当我使用实现 IDisposable 的资源时,我正在使用 using 语句。到目前为止,我总共运行了四个小时的服务,这里是我的内存使用情况:
开始:9k
15 分钟:10k
30 分钟:13k
1 小时:13k
2 小时:13k
3 小时:13k
30 分钟后它似乎是一致的(在 13,100 和 13,200 之间),但我不确定为什么在前 30 分钟后仍然分配资源。 OnStart() 方法启动 4 个计时器和一些小对象。我的对象的构建当然不需要 30 分钟。计时器只是等待特定时间,执行查询,然后使用 Twilio 将结果排队并等待下一个事件。
此时我应该担心内存泄漏吗?这样的应用程序正常吗?
【问题讨论】:
-
这很难说,因为你的内存使用率很低,垃圾收集器可能永远不会启动。尝试运行你的服务几天。
-
这就是我的想法,但很难确定。谢谢你的帮助!它安装在我的测试服务器上,将在周末运行。我会在星期一提供更新。
-
我同意@zmbq。只需观察几天,看看会发生什么。内存使用量将根据代码正在执行的操作和垃圾收集器而波动,但应位于平均值范围内。
-
这个问题是有效的,反对票是怎么回事?
-
@HenkHolterman 数字本身并不能说明任何问题,但问题仍然有效。他认为他们可能是内存泄漏,他提供了他认为有用的信息并希望得到其他人的建议。显然其他人能够提供帮助,这就是这个网站的全部意义......(除了赚钱:)所以这个问题至少对我来说是有效的,但这只是我的意见。
标签: c# memory memory-leaks windows-services memory-management