gpt4 book ai didi

web-services - EF 1 Web 服务应用程序中的内存使用量在每次调用时不断增长 - 查询缓存问题?

转载 作者:行者123 更新时间:2023-12-04 03:58:32 24 4
gpt4 key购买 nike

希望你们中的一些聪明人能帮助我!

我们有一个 ASP.NET 网络服务应用程序,使用 Entity Framework 1 和 EFPocoAdapter。 运行此网络服务的应用程序池的内存使用量在每次网络服务调用时都在不断增长。我们目前正在监视其内存使用量,一旦它开始超过 1GB,我们就会回收应用程序池以释放内存.

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

所以我使用 Ants memory profiler 7 来跟踪正在发生的事情,并且在第一次调用 Web 服务之后(此时 EF 框架生成它的 View 等),我拍了一张快照。然后进行相同的调用并拍摄另一个快照。 Ants 显示自上次快照以来创建的新对象几乎都与 System.Data.Common.QueryCache.QueryCacheManager 相关。

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

所以,我的问题.....是否有关闭此缓存的方法,或者我在这里咆哮错误的树并且还有其他我不知道的事情发生了?

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

最佳答案

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

datacontext.ObjectTrackingEnabled = false;

在与 Linq2SQL 类似的情况下,它对我有用。

关于web-services - EF 1 Web 服务应用程序中的内存使用量在每次调用时不断增长 - 查询缓存问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7753311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com