0

我有一个运行多个线程的工作者角色(我使用了ThreadedWorkerRole)。我的工作角色会下载一些数据,然后下载与该数据相关的图像。在本地一切正常,但是当我在 azure 上部署应用程序时,它首先显示合理的内存使用量(48 MB),然后在 1 或 2 小时内达到 800 MB。我的应用程序确实关心使用大量“使用”语句处理对象并正确关闭流。但我仍然想知道是什么原因导致内存以如此高的值跳跃。还有一件事,我使用了 RETSLib(PInvoke library to hit RETS server),它下载数据和图像。可能是非托管代码的问题吗?

4

1 回答 1

1

这肯定是非托管代码泄漏内存的问题。RETSLib 是 librets 上的 .net 包装器吗?一些对 librets泄漏内存的 php 实现的引用。

您提到“下载一些数据,然后下载与该数据相关的图像”。您是在使用 Entity Framework 来获取这些初始数据还是将其存储到 SQL 中?如果是这样,我假设您处理了 ObjectContext。在某些情况下,EF 4.0 似乎存在一些内存问题。
一个讨论这个的链接(旧) 。

可以将此添加为评论,但由于我的低代表点,stackoverflow 不允许我这样做

于 2013-05-09T10:38:08.700 回答