Asp.Net运行于32/64模式下的性能差异

摘要:
项目使用的是Oracle数据库,.Net使用Odac对数据库进行访问。在官方下载Odac时会让你选择是下载32位的还是64位的。这会直接影响到网站的运行模式。而我之前想到的Asp.Net4.0在64位操作系统下运行于64位模式下性能居然是最差的!之后我与一个朋友交流了一下,他们公司正常情况也都是运行于32位模式下,从经验来讲在32位下w3wp进程内存使用量如果超过了800M,则会产生严重的性能问题。

项目使用的是Oracle数据库,.Net使用Odac对数据库进行访问。在官方下载Odac时会让你选择是下载32位的还是64位的。这会直接影响到网站的运行模式。目前我们使用的是32位的,那么布署时,需要将应用程序池的启用32位设置为True。

那么,对于网站来讲,是32位模式性能更好,还是64位性能更好呢?

我没有动手亲自试验,而是在网上查了查,在这篇文章里,提问者进行了多次性能测试,并将结果汇总为图表。可以看到,Asp.Net 2.0 在32位操作系统下运行于32位模式下性能最好,Asp.Net 4.0 在64位操作系统下运行于32位模式下其次。而我之前想到的Asp.Net 4.0在64位操作系统下运行于64位模式下性能居然是最差的!

文章里谈了若干个理由,我觉得也很好理解,64位相对于32位来讲,最大的优势是可访问内存的扩大,这对于内存敏感型的程序绝对是天大的好消息,比如数据库,缓存系统等。但对于Cpu敏感型的应用来讲,比如IIS,小指针能够带来更高的命中率(smaller pointers mean less memory needed for a specific set of instructions which means better cache hit ratios),进而32位能带来更高的性能。

文章里所谈论的数据都是基于Windows 2003 + IIS6的,文章的最后也提到了从IIS7开始,两者之间没有太多的差别了。

之后我与一个朋友交流了一下,他们公司正常情况也都是运行于32位模式下,从经验来讲在32位下w3wp进程内存使用量如果超过了800M,则会产生严重的性能问题。如果程序质量实在太差,才考虑使用64位模式,此时内存使用上限可以到1.5G。

PS

VS2012默认启用的是32位的IISExpress,如果想使用64位的,需要在运行窗口执行以下语句,然后重启VS即可。

reg add HKEY_CURRENT_USERSoftwareMicrosoftVisualStudio11.0WebProjects /v Use64BitIISExpress /t REG_DWORD /d 1

参考:

ASP.NET performance decrease between 32bit/64bit server

What are the pros and cons of running IIS as 32bit vs 64bit on a 64bit OS?

Configure Visual Studio 2012 to use 64 bit version of IIS Express

免责声明:文章转载自《Asp.Net运行于32/64模式下的性能差异》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇WIN2008R2故障转移集群实验grep、egrep命令用法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

TagHelper使用

谈谈ASP.NET CORE 中Razor Page 的TagHelper【标签助手】常见类型及其详细使用 David Hongyu 2020-03-15 15:42:39 748 收藏 4 原力计划分类专栏: ASP.NET CORE MVC 文章标签: asp.net版权 ASP.NET CORE MVC专栏收录该内容56 篇文章1 订阅订阅专栏一,T...

设置GridView表头的背景图片

方法一: protected void Page_Load(object sender, EventArgs e)    {       //UserGrid.Attributes.Add("bordercolor", "#a7b8d9");        UserGrid.HeaderRow.Attributes.Add("style", "backgr...

kindEditor上传图片错误,不成功的问题总结

自己的网站是用的GB2312的编码,ASP做的网站。 原来用了ewebeditor 的后台HTML编译器,在使用了新空间后,编译器上传图片不成功了。 我在网上找ewebeditor相关的资料,发现资料很少,自己去研究太花时间了,ewebeditor也不支持非IE的浏览器。还是另外使用一个HTML后台编辑器吧。 在网上搜索了几个有名的后台编辑器,如下: CK...

ASP.Net超时时间已到解决办法-

解决办法 1.在代码里面,把未关闭的连接关闭 2.扩大共享池,方法如下: 解决方法可以是修改连接池的连接生存期,因为默认值是60秒,即连接从应用程序被释放后可以在池中保存的时间。 具体操作步骤如下: 如果是ODBC的话,则可以在ODBC Data Source Administrator中手动更改,该程序位于“Start”菜单中的“Programs”-&g...

ASP 下 能作为json输出后js能解密的 escape 函数

网络上流传的 vbsEscape UnEscape都只针对asp而言,js传递给asp时可进行转义解码,但asp输出json时如果用这些函数进行编码的话,js是无法正常解码的。 下面是经过实际验证可用的asp escape函数: 原文地址:http://www.webdevbros.net/2007/04/26/json-character-escapin...

Asp.Net 之 基本控件FileUpload上传控件

1、前台代码: <asp:FileUpload ID="FileUpload" runat="server" /> <asp:Button ID="BtnUp" runat="server" onclick="BtnUp_Click" Text="上 传" /> <asp:Label ID="LabMsg" runat...