asp.net-mvc – .NET MVC / Entity Framework应用程序中的内存使
我有一个相对较大的实体框架模型(约300个表),我预先生成视图以提高查询/应用程序性能.
当应用程序处于最小负载时,我会在6-7小时内逐渐增加应用程序内的内存消耗.达到约. 4GB,重置应用程序池并重复该过程. 图1:显示8-9小时内的应用程序内存消耗 此应用程序使用存储库模式的变体,并确保我的ObjectContext实例在每个事务可行的最短时间内重新实例化和销毁.我还在所有存储库/接口上实现IDisposable以清理任何资源. 我已经使用内存分析器(如Red Gate的ANTS配置文件,WinDbg等)对应用程序进行了大量测试,但到目前为止还无法确定内存问题的确切原因,但是请注意以下内容:
我的核心解决方案结构如下: >演示文稿 – ASP.NET MVC 3 如果有人能够提供任何指示,我将非常感激. 解决方法
我们自动假设问题是EF.可以,可以不是.我们应该注意很多要点,而不仅仅是数据访问基础设施.
发布数据访问,因为您只使用EF,您可以使用简单的.AsNoTracking()方法获得快速改进.采用ServiceLocator来帮助您管理上下文池. 您还可以在ReadOnly情况下使用Dapper而不是EF. 最后,但并非最不重要的是,使用纯ADO.NET,用于更复杂的查询和最快的执行. 重构你的ActionFilters以避免使用一些所有控制器继承的“BaseController”也是一个好习惯. 检查你的IDisposable类是否真的被CG压制,采用.Dispose(bool)模式. 确保您不会永久保留缓存变量,只会由应用程序池循环释放. 这只是提示,但努力工作将伴随您,具有代码访问权限. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 在Owin应用程序中每个请求的数据缓存
- asp.net-mvc – 从asp.net POST动作方法更新nhibernate实体
- asp.net-mvc-3 – MVC动作被调用两次?
- asp.net – 网站随时随地突破
- asp.net-mvc – Asp.net Identity:User.Identity.GetUserI
- asp.net – 如何在数学方法中缩短网址
- ASP.NET MVC在IIS7下发布无法显示的解决办法
- asp.net-mvc – 为什么Chrome在这两种情况下使用不同的客户
- asp.net-mvc – 如何将SaSS用于ASP.NET MVC应用程序?
- asp.net-mvc-4 – 什么是antlr3,为什么默认情况下在VS2012
- asp.net-mvc – 使用ASP.NET身份重置密码时的令牌
- 循环 – 如何检查我是否在ADO Recordset的最后一
- asp.net – 异步加载Facebook Javascript SDK
- asp.net – Http Handler正在iis express中工作,
- asp.net – 如何在弹出窗口中打开aspx网页
- asp.net-mvc – @ Html.ValidationSummary(true)
- asp.net-mvc – 使用一组复杂数据类型调用Update
- asp.net – 使用UpdatePanel的CollectionPager问
- asp.net – 在成功登录时添加声明并在应用程序的
- asp.net – 如何在成功插入数据后清除radiobutto