首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在每个调用查询缓存问题上,EF 1 web服务应用程序中的内存使用量都在不断增长?

在每个调用查询缓存问题上,EF 1 web服务应用程序中的内存使用量都在不断增长?
EN

Stack Overflow用户
提问于 2011-10-13 11:19:04
回答 1查看 262关注 0票数 3

希望你们中的一些聪明人能在这里帮我!

我们有一个ASP.NET web服务应用程序,使用实体框架1和EFPocoAdapter。运行这个web服务的应用程序池的使用量在每个web服务调用中都在不断增长。我们目前正在监控它的mem使用情况,一旦它开始超过1GB,我们就回收应用程序池来释放内存。

我们在一个“使用”语句中实例化每个web方法中的对象上下文,这样就不会留下打开的对象上下文(使用efprof观察到)。

因此,我使用蚂蚁内存分析器7来跟踪发生了什么,并且在第一次调用web服务之后(此时EF框架生成它的视图,等等),我已经拍摄了一个快照。然后进行相同的调用并拍摄另一张快照。System.Data.Common.QueryCache.QueryCacheManager. Ants显示,自上次快照以来创建的新对象几乎都与System.Data.Common.QueryCache.QueryCacheManager.相关。

我知道缓存的目的是提高性能,但是在我们的例子中,我认为我们不需要缓存每个查询计划,因为由于主要应用程序/业务的性质,重复这些调用的可能性很小。

所以我的问题..。是否有一种关闭缓存的方法,或者是我在这里乱叫错误的树,还有什么事情我不知道呢?

我已经在网上搜索了这个问题的答案,我所能找到的只有MergeOption属性,它似乎更多地与实体跟踪有关,以提高速度/性能。

EN

回答 1

Stack Overflow用户

发布于 2011-12-13 01:01:50

如果您不修改数据,只需选择它,就可以简单地关闭对象修改跟踪:

代码语言:javascript
运行
复制
datacontext.ObjectTrackingEnabled = false;

在与Linq2SQL类似的情况下,它也适用于我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7753311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档