asp.net – 32位池和64位池之间的内存使用情况
|
我们有一个ASP.NET应用程序,围绕MonoRail和NHibernate构建,并且我注意到,如果使用64位模式或32位模式运行它,就会发生一个奇怪的行为。一切都编译为AnyCPU,并且两种模式都可以正常运行,但内存使用情况却有很大差异。 看看ANTS的以下快照: 32bit_snapshot: VS 64bit_snapshot: 两个快照的使用场景几乎相当(我在两次运行中都打到相同的页面)。 首先,为什么64位模式下Unused内存如此之高?为什么非托管内存是64位模式下的大小的4倍? 任何对此的洞察将是非常有帮助的。 解决方法64位进程的初始内存分配远远高于同等32位进程的内存分配。从理论上说,垃圾收集运行的频率要低得多,这样可以提高性能。它也有助于碎片化,因为一次分配更大的内存块。 本文:http://blogs.msdn.com/b/maoni/archive/2007/05/15/64-bit-vs-32-bit.aspx给出了更详细的解释。 您看到的非托管内存使用率可能更高可能是因为以32位模式运行的.NET对象使用最少12个字节(8字节4字节引用),而64位中的相同对象将占用24个字节(12个字节8字节参考)。 另一篇文章更全面地解释:http://www.simple-talk.com/dotnet/.net-framework/object-overhead-the-hidden-.net-memory–allocation-cost/ (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ASP.net MVC自定义路由处理程序/约束
- asp.net-core – ASP.NET 5中的HandleUnknownAction
- asp.net-mvc – 如何只允许mvc4 razor中的文本框中的数字
- 在ASP.NET中流式传输大文件上传
- asp.net-mvc – 图像优化框架未初始化
- asp.net-mvc – 将asp.net服务器参数传递给Angular 2 app
- 使用ASP.NET webAPI上载文件(最大文件大小为10Mb)
- asp.net – JMeter测试ASP .NET网页有多好?
- asp.net-mvc – MVC Html.CheckBox和表单提交问题
- .net – 为什么在单击按钮时,SelectedIndexChanged会触发Dr
- 在ASP.NET MVC 2中实现DropDownList的最佳方式?
- .net – 当表中的数据发生变化时,SqlCacheDepend
- Autofac和ASP.NET Web API ApiController
- 使用oAuth和ASP.NET MVC WebApi进行身份验证
- 管理页面来管理asp.net会员提供商和角色管理
- asp.net-mvc – 测试ASP.NET MVC网站
- asp.net-mvc – 使用Razor的ASP.NET MVC 3 – 将
- asp.net – 为什么%=%标记呈现为“%=%”?
- asp.net – 在Web部署之外应用Web.Config转换
- asp经典 – ASP检查请求方法
