|
楼主 |
发表于 2009-11-11 11:16:59
|
显示全部楼层
个人认为:你的硬件如支持64bit而不用,那将是资源的浪费。更何况,MSDNx64兼容32bit,也就是说:32位的程序在64位的系统里跑,会更流畅。
转此帖的目的(大家应该知道了):999要出64位的windows7了,而且要出所有版本。
首先明确:只有64位处理器系统才有可能安装、运行Windows 7 x64。不过2007以后的AMD、INTEL 的CPU基本都是64位的了。
先说两句:今天测试64位MSDNWindows 7,意外发现在C盘根目录下有个Program FilesX86的文件夹,明白了它已完全兼容32位的程序,随后测试证实。
64位的镜像要大很多,目前只准备出安装版。
下面是转帖:
[声明一下,写这篇文章是因为看到大家为了x86/x64争吵得太厉害而且有愈演愈烈的趋势,希望能够用我有限的知识和经验为大家提供一点帮助和启发,也为999的和谐气氛建设做点贡献,所有的字都是我这两天利用闲暇时间一个一个的打出来的。 不了解别的论坛的情况,或者我说的这些在别的地方已经被人讨论过很多次了,那实在对不起又折磨了大家的眼睛和大脑一次,或者楼下说我转贴的朋友是因为在别的地方已经看到过有人和我有一样的经历并且写下了一样的体会,如果是这样麻烦告诉我一下,我也去认识认识和我这么巧合的人。]
我知道很多人都是出于一片好心,希望大家都能用上更先进更稳定的系统享受更好的性能。但是用x86还是x64是每个人的自由,由他们自己的喜好来决定,只要他们自己满意就好,如果不满意的自然就会考虑改变,请不要用嘲讽来激将也不需要恨铁不成钢般地批评。
我本人呢,是亲x64派的,只不过因为实际条件限制,只能用x86。下面把自己的一些体会和想法写一下:
1。关于兼容性,没遇到问题的朋友我首先恭喜你们了,但请别看不起遇到了的朋友。能够遇到的至少都是亲身在体验x64的,都是潜在的战友啊,而且能有意向并且下定决心安装x64的总不至于太弱吧,很多时候有问题就是真有问题了,解决不了就是真解决不了了。如果是彻彻底底的小白胡乱尝试出了问题那也只能怪他们运气不好了(勇气可嘉,值得鼓励),毕竟在当前微软自己都说了the 64-bit editions are not for everyone(原话好像就是这样了,常去MSFN的朋友肯定看到过)。
x64发展了这么多年,确实兼容性已经很好了,大部分(是大部分,还没有乐观到99.9%,而且对于专业领域来说,往往一个不行基本上就会导致对新系统的全盘否定)32位软件都能正常运行,但是遇到不能运行的时候就很麻烦了。拿我自己来说,两个星期前在不常用的Macbook Pro上装了win 7 x64, 所有机载硬件由win7自带驱动配合apple的bootcamp提供的vista x64驱动完美安装,安装的软件有Photoshop CS4 x64, 3ds max design 2009 x64, autocad 2009 x64, Visual Studio 2008 (没有X64版本),Office 2007 Ultimate(没有X64版本),Mindjet Mindmanager 8 (没有X64版本),还有些杂七杂八的日常用的小软件都很完美。 本以为可以从此皈依x64,结果第二天在天天用的Dell Latitude XT里面把win 7 x64 和软件装完以后小编译了一下当前正在做的一个项目,发现开发用的一个蓝牙设备死活无法和项目程序通信。Dell 里面原来装的win 7 x86 配合bluesoleil 5.0.5.178 正常,当时BS 505在MBP的win 7 x64下安装正常,也能找到和连上设备,在MBP的win 7 x64下用VS2008编译了几个小程序都正常,而项目的程序都在Dell上就没有拷过去MBP试验, 没想到会来上这么一出,后来给bluesoleil 公司发信过去,他们也无能为力, 最后DELL只好通过Ghost重回win 7 x86的怀抱。。。
另外,和我现在一起做这个项目的哥们,负者的是单片机的开发,用的还是16的软件,所以想让他用x64的系统那除非是先要踏过他的尸体了(32位的系统还能支持16位软件,64位系统对16位软件是彻底不支持的)。而且目前还有一部分32位软件用的installer是16位的,这也导致了不能在64位系统上安装。还有一些32位的软件在运行的时候需要调用一些16的组件,这种情况下可以在64位环境里安装成功但是运行的时候会出错。
2。 接下来说说通过64位系统能享受到的性能提升以及。。。下降。。。我想这也是大家最关心并且争论得最多的地方,我会根据我的理解来进行分析。
关于提升:可能因为从16位系统到32系统的转化确实带来了系统性能的还算不错的提升,所以大部分人可能都认为从32到64应该又是一次飞跃。毕竟64位cpu加原生64位系统至少有两件 法宝能带来性能提升:a). 64位cpu支持的SSE x系列指令集(Streaming SIMD Extensions)b). 64位大寄存器和指针带来的更多的代码编译优化选择。
a). SSE x简而言之就是一套让cpu的运算更有效的指令集,比如两个单精度4元矢量相加(图像处理中常用到矢量运算)如果通过x87指令集(是的,x87,x87是x86架构指令集里的一套数学 计算相关子集)正常运算要进行4次浮点加运算,但是通过SSE只需要1次就可以了。4次变1次,虽然不是运算所需时间变成原来的1/4那么简单,但是提升也是可想而知的了。很多人这时候会问,我们现在的很多32位cpu不就都号称支持 MMX(SSE的前身),SSE,SSE2, SSE3了么?是的,没错,现在的新cpu内部都硬件集成了这些指令集,但是硬件有了还需要软件来利用才能发挥优势啊。我简单说一下32位cpu发展史,最早出现的32位cpu是intel 80386 (我只谈windows领域,IBM System/360,DEC VAX 和 Motorola 68000系列的fans表拍我),1997年intel在奔腾系列CPU引入了MMX,紧接着是在1999年的奔3中加入SSE,再后来在奔4系列引入SSE2,然后过了几年到了发布SSE4的时候intel又取消了对自己一直都不满意的MMX寄存器的支持。这期间AMD也没少出力,从1998年在K6-2(真怀念啊,自己的第二台电脑,为了暗黑地狱火和星际而攒)里引入的3DNow!,到历史性的AMD64 x86-64扩展中使用的8个128位寄存器(后来被intel照搬过去再加了8个128位寄存器发展成了SSE第一代),再到2007年宣布SSE5。大家想想这么错综复杂的发展史,伴随着硬件发展起来的软件业该有多痛苦啊?其实不然,很简单,不支持或者有选择的支持这些个指令集就好了。大家也别说软件业者不负责任,这也是出于对兼容性的考虑,首先要让软件能在大部分(跨度太大,没可能兼顾所有)32位的CPU上运行,其次才有可能考虑其运行起来快不快不是么?自然,到了x64系列CPU,早期发展起来的指令集已经全部集成在CPU里,兼容性已经不能作为偷懒的借口也不用去担心了,因此为64位系统开发优化的程序可以充分利用SSE x系列指令集带来的好处了,性能自然提升。
b). 估计有耐心看到这儿的朋友已经有不少在心里嘀咕了,丫个小样的,说了这么多,连64位可以支持大内存都不知道还在这儿谈x64 呐?先给板砖还没飞出手的兄弟姐妹们鞠一躬,下面马上说到x64带来的大内存支持。
首先我要指出大部分人在认识上的一个误区: 很多人都说,32位只能支持3.x G内存,64位才能支持到4G和更多容量,其实这是不对的。解释如下:我们都知道,理论上一个系统的寻址空间大小(也就是支持的内存的容量)等于2的这个系统的位数次方,即 32位系统支持2的32次方 bytes = 4GB,但是为什么大家的32位系统都只报告3.12G左右的内存(Vista x86 装了sp1以后可以报告4G了,但是实际能用到还是3.12 G)?这里不得不提一下MMIO —— 内存映射,所谓内存映射就是指有些硬件是需要在内存里映射一部分保留空间以保证访问,比如,你有1块256MB独显的显卡,那么系统就必须要在内存里给显卡保留出256MB的映射空间,诸如此类,各种设备都会占用一部分内存(映射掉的空间对操作系统是不可用的)。而对于32位系统来说,因为最多只能访问4G的内存,所以映射空间只能从这4G内存空间 里面扣,从而使得操作系统的可用内存变少。具体少多少本来应该是因人而异的,但是在32位的vista里面我们却无论如何也不能使用多过3.12G的内存,因为按照微软官方的说法是:“为了避免潜在的驱动兼容危险,32位vista的可用内存被限制到了3.12 G(也就是说Vista为哪怕没有安装的设备也保留了映射空间)。”其实即使在x64系统里,内存映射也是要吃掉一部分空间的,并不是所有的内存空间都是操作系统可用的,只不过微软从Vista Sp1以后在系统信息里都会报告系统安装的最大内存容量,可能被骂怕了吧。在这里我就不讨论PAE了,如果要讨论的话,估计又是一大段篇幅。 事实上,如果一台机器上连接的设备太多的话,可用的内存还会变得更少,有兴趣的朋友可以自己试一下,哈哈。
说完32位下面来说64位,先不说2的64次方是多少,由于BIOS,PCI总线(包括桥间通信带宽)和PCI Express支持能力的限制,当前64位系统支持的最大的内存容量就是128 GB了。看上去很美,不是么?但事实上,大部分程序需要也只需要1-2G的空间就能运行得很好,只有等到应用程序全面64位化而且硬件也跟上了,大内存的优势才能逐渐体现,目前也就服务器,2/3D图像处理,视频编辑和虚拟机等应用上能体现出x64的优势。(大内存既是机遇又是挑战,因为指针容积翻倍,64位程序运行的时候需要的内存也会增加,这也是windows x64系统进程占用的内存空间比x86要大的原因。如果程序人员因为觉得有大量内存可用而不注意优化的化,64位带来的就不是进步了,当然这是目前小部分人才需要考虑的事情。)64位同时还意味着带宽的增加,简单的说就是以前32位程序需要移动2次的数据现在移动一次就成,利用了大内存同时也减少了硬盘读取,这也是为什么说64位的7z解压缩比32位的7z要快的原因,当然,之前提到的SSE x指令集也是功不可没(好吧,我没看过7z的源码,但是相信是针对x64的cpu优化过的,而不是仅仅通过64位编译来利用大的带宽而已)。带宽的提升对于photoshop,3ds max等需要吞吐大量数据的程序的提升还是很明显的,配合上SSE x帮助大概能有10-30%左右?不要指望100%了,别忘了一个系统由很多部分组成,瓶颈无处不在啊。。。
对了,给想升级内存上x64的朋友们提个醒,买内存之前最好先查询一下自己的主板芯片最大支持多大的内存,特别是机器年龄有个2,3岁的朋友。例如975 最大支持到8G,945最大支持到4G,再早的还有连4G都支持不到的,等等。
20090823_www[1].in9.cn_999宝藏网_win7600-MSDN_x64-Ultimate-zh-cn.iso.rar
(128.84 KB, 下载次数: 326)
[ 本帖最后由 tanglaoya 于 2009-11-11 11:19 编辑 ] |
|