Asp.Net运行于32/64模式下的性能差异
项目使用的是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_USER\Software\Microsoft\VisualStudio\11.0\WebProjects /v Use64BitIISExpress /t REG_DWORD /d
参考:
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模式下的性能差异的更多相关文章
- 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16
一.Intel 32 位处理器的工作模式 如上图所示,Intel 32 位处理器有3种工作模式. (1)实模式:工作方式相当于一个8086 (2)保护模式:提供支持多任务环境的工作方式,建立保护机制 ...
- 32位模式下C/C++程序可用最大内存
关于32位程序申请大内存问题(1.6G). 我在win7 64系统上面测试Visual studio 10 int* Test=new int[1024*1024*200]; int* Test2=n ...
- 配置Apache运行在event事件驱动模式下
(1)启用MPM Include conf/extra/httpd-mpm.conf (2)配置evnet MPM参数 <IfModule event.c> #default 3 Ser ...
- Spring Cloud ZooKeeper集成Feign的坑3,程序Run模式运行没事,Debug模式下报错
请更新Spring Cloud的版本: <dependency> <groupId>org.springframework.cloud</groupId> < ...
- Groovy在不同JDK版本下的性能差异
Groovy作为一种动态语言,性能和JAVA比肯定是差不少,根据网友的测试,由于测试环境,场景和编译参数的不同,大概有差2到7倍的差距 那么同样的Groovy,在不同的JDK版本下,会有着怎样的差异呢 ...
- x86架构:保护模式下利用中断实现抢占式多任务运行
站在用户角度考虑,一个合格的操作系统即使在单核下也能 "同时" 执行多个任务,这就要求CPU以非常快的频率在不同任务之间切换,让普通人根本感觉不到任务的切换.windwo ...
- x86架构:保护模式下加载并运行用户程序
本章的代码分3个模块: MBR 引导:加载内核core程序 core:包含内核代码段(从磁盘加载用户程序并重定位).内核数据段(存放api名称.临时缓冲.字符串等).API段(供用户程序调用) 用户程 ...
- ASM:《X86汇编语言-从实模式到保护模式》第14章:保护模式下的特权保护和任务概述
★PART1:32位保护模式下任务的隔离和特权级保护 这一章是全书的重点之一,这一张必须要理解特权级(包括CPL,RPL和DPL的含义)是什么,调用门的使用,还有LDT和TSS的工作原理(15章着重 ...
- 保护模式下pmtest1.asm的理解
整个代码对应内存线性地址分为四段,[gdt] [code32] [video32] [code16] 代码先在实模式[code16]下运行,code16中的cs就是系统分配的该程序物理地址的基址. 编 ...
随机推荐
- 【jmeter】接口稳定性测试
1.创建进行测试的脚本 2.场景设置 线程组设置并发用户数30 在启动1s,30并发用户全部启动 循环设置为永远 采用调度器:有两种工作方式 1.设置启动和结束时间 2.设置持续时间,我设置的是60s ...
- 利用JavaScript生成随机数字!
<!DOCTYPE html> <html> <head> <title>1-99的随机数字</title> <script type ...
- SSH整合(Struts2+hibernate+spring)
1.创建表 create table t_user( id int primary key auto_increment, username varchar(50), password varchar ...
- Flink – Trigger,Evictor
org.apache.flink.streaming.api.windowing.triggers; Trigger public abstract class Trigger<T, W e ...
- VC中对文件的读写
http://www.cnblogs.com/LJWJL/archive/2012/10/06/2712466.html 注意: 1.由于C是缓冲写 所以要在关闭或刷新后才能看到文件内容 2.电脑处理 ...
- 一个简易的四则运算单元...(15.12.15 BUG更新)
网上找的, 没有作者信息, 只能在这里感谢一下了, 支持标准写法的四则运算 --2015-12-15 修改了一个内存泄漏的BUG - Pop方法没有释放申请的内存 unit Base.Calculat ...
- RFID电子标签天线的印刷
RFID 电子标签技术又称RFID(Radio FrequencyIdentification)射频识别技术,是一种非接触式的自动识别技术,通过相距几厘米到几米距离内传感器发射的无线电波,可以读取RF ...
- Windows Locale Codes - Sortable list(具体一个语言里还可具体细分,中国是2052,法国是1036)
Windows Locale Codes - Sortable list NOTE: Code page is an outdated method for character encoding, y ...
- CXF调用webservice超时设置
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); factory.setServiceClass(Service1Soap.cl ...
- sed 引入shell变量
双单引号即可 1.eval sed ’s/$a/$b/’ filename2.sed "s/$a/$b/" filename3.sed ’s/’$a’/’$b’/’ filenam ...