asp.net-mvc – ASP.NET MVC和EF代码第一内存使用
|
我有一个内置ASP.NET MVC 3的应用程序,它使用SQL CE存储和EF CTP 5进行数据访问。 我已经将这个站点部署到一个共享的主机上,以发现它在不断被回收,因为它们在他们(专用的)应用程序池上设置了100mb的限制。 该网站在释放模式下运行时使用大约110mb RAM。 我试过使用SQL Server Express而不是CE,这没有什么区别。 唯一显着的区别是当我完全删除EF(使用假的回购)。内存使用量下降了3040mb。一个空白的MVC模板使用大约20mb,所以我认为这不是太糟糕? “标准”ASP.NET MVC应用程序是否有基准测试? 了解其他EF CTP用户的内存使用情况以及内存分析工具的一些建议(最好是免费的)是很好的。 值得一提的是如何处理EF ObjectContext的生命周期。我正在使用每个请求的会话,并使用StructureMap实例化ObjectContext: For<IDbContext>().HttpContextScoped().Use(ctx => new MyContext("MyConnStringName"));
非常感谢 解决方法我们确实设法大大减少了内存占用。 IIS工作进程现在位于50mb左右,而之前的100 mb。以下是帮助我们的一些事情: >检查基本信息。确保在发布模式下编译,并在web.config中将编译调试设置为false。很容易忘记这样的事情。 输出缓存的注释: 最终没有一个关于如何优化应用程序的硬规则。当我们停止使用ORM建立我们的协会(面向公众面向我们网站的一部分)时,我们的应用程序性能最大的改进,而不是手动加载到我们的视图模型中。我们无法使用EF热切加载它们,因为有太多的关联(导致一个凌乱的UNION查询)。 一个例子是我们的标记机制。可以标记BlogPost和Project等实体。标签和可标签实体具有多对多关系。在我们的情况下,最好是检索所有标签并缓存它们。然后,我们创建了一个linq投影来缓存可标记实体的关联密钥(例如ProjectId / TagId)。当为我们的页面创建viewmodel时,我们可以为每个可标记实体建立标签,而不会触发数据库。同样,这是针对我们的应用程序,但它在性能方面大大提高,并降低了内存使用量。 我们沿用的一些资源/工具: > EFProf – 监视由Entity Framework生成的查询(免费试用) 虽然我们做出了改进,这将使我们受到托管公司的(Arvixe)应用程序池限制,我觉得有义务告诉那些正在查看他们的Windows经销商计划的人,这样的限制已经到位(自从Arvixe不在广告计划时提到这一点)。所以当某些东西看起来太好了,不能成为真实的(无限的x,y,z),它通常是。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 配置 – ASP.NET Web Api:项目需要SQL Server Express
- Asp.Net的FileUpload类实现上传文件实例
- 如何组合WebResource.axd和ScriptResource.axd文件,以减少对
- asp.net-mvc – ASP.NET MVC路由和区域
- asp.net-mvc – MVC 3 Webgrid – 你如何隐藏不想显示的列?
- asp.net-mvc – asp.net MVC-3视频教程?
- asp.net-mvc – Web API可空的必需属性需要DataMember属性
- asp.net-mvc – 如何使WebAPI操作只能从我的应用程序访问?
- asp.net 将一个图片以二进制值的形式存入Xml文件中的实例代
- asp.net-mvc-3 – 如何在Asp.Net Mvc 3中显示自定义错误页面
- asp.net – ConfigurationManager.AppSettings缓
- asp.net-mvc – 在DropDownList中验证所需的选择
- asp.net – Signalr中哪个更好的WebSocket或Long
- asp.net – 谁负责处理HttpPostedFile.InputStre
- 只需发布已修改的控制器,模型和ASP.NET MVC项目的
- asp.net-mvc – 从Asp.net MVC2迁移到MVC4
- asp.net-mvc – 如何更改MVC Core ValidationSum
- asp.net – 如何限制指定文件类型的下载
- asp.net-mvc – WebService还是一个简单的MVC控制
- 是否可以在IIS中禁用ASP.NET网站睡眠?
