32 64位运行效率-64位,32位windows上的相同程序,运行效率到底区别有多大?

问题描述

64位,32位windows上的相同程序,运行效率到底区别有多大?
64位,32位windows上的相同程序,运行效率到底区别有多大?
分别在对应的版本下编译并运行。

解决方案

看什么样的程序。如果是科学计算程序,比如用到很多64位的四则运算,那么显然32位机器要想做同样的工作,需要3、4倍的指令才能完成,那么64位的优势是明显的。

可以举一个例子。你可以运行Windows XP和Windows XP x64版本下的计算器(calc.exe),执行高级运算中的阶乘。计算一个比较大的数,比如10万。你可以看到两者花费时间惊人的不同。

但是对于一般的办公软件、游戏软件,增加位宽无助于提高性能,事实上32位都显得多余,只有它的最低几位在参与实际的运算。那么64位其实和32位差别不大。

事实上,32bit的系统性能还没有那么弱,因为在32bit系统上,处理器早就扩展了iSSE/iSSE2指令,它们已经将浮点和整数的计算位宽大大扩大了。

所以64位主要还是针对4GB以上内存寻址而不得不采用的技术。

解决方案二:
再举一个通俗的例子,你可以想象有两个算盘,一个是只有4排的,一个有8排的。如果你要计算的东西都是1000以内的加减法,那么两个算盘一样用,毫无区别。
但是如果你要计算几万几万(并且不能省略小数)的,那么4排算盘不够了,你只能算好低位,记录下结果,再算高位,最后把两次计算结果合并输出。那么8排的算盘就强多了。

解决方案三:
当然,实际上,64位和32位还是有些不同的。这主要体现在64位下,对应每条指令和每个数据,需要的存储都比32位大。因此,一块1MB L2缓存的CPU,运行64位程序,相当于它的缓存就减半了。
一个2GB内存的计算机,运行64bit程序,也相当于减半了内存。不但这样,总线传输数据效率也减半了。

从这个意义上来说,x64系统似乎效率更差。

但是实际上这个事情比较复杂,Intel/AMD预计到了这种情况,于是在指令编码和地址编码上做了优化。比如说用压缩的格式表示指令;56位以上的地址事实上被忽略(事实上现在的x64寻址能力不是2^64字节,而是2^56甚至更少)等等。

这些措施使得x64因为存储造成的性能损失被控制在最小。同时64位驱动程序、指令等等又产生了一些性能增量,总体来看,x64和x86相比,性能还有微小提高,但是在非计算密集/数据密集的应用中,这种提高只有10%以内。

解决方案四:
64bit程序的地址空间更大,64位,比32bit程序地址空间大很多,可以提高计算数据带宽

时间: 2024-12-28 20:16:57

32 64位运行效率-64位,32位windows上的相同程序,运行效率到底区别有多大?的相关文章

Windows系统32位和64位的区别在哪里

  Windows系统32位和64位的区别在哪里          如何确定32位和64位系统? 计算机体系结构是32位还是64位取决于计算机内部的处理器(CPU).目前,大多数计算机处理器属于这两个类别之一. 64位处理器比对应的32位处理器指数级更强大,因为它们可以保存和处理更多的信息. 要了解两者之间的差异的大小,你必须理解一点关于二进制计数,二进制只有两个数 0或1. 因此,32位数具有2 ^ 32个可能的地址,也就是4,294,967,296.相反,64位数字的容量是2 ^ 64,也就

在双硬盘上安装独立32位和64位双系统

现在的64位操作系统还没有中文版,加之受兼容性问题的影响,组建独立多系统显然已成为最佳的解决方案.很多朋友在配置64位硬件平台时已购入了SATA硬盘,但同时拥有SATA和PATA硬盘的朋友也不在少数,下面就来说明怎样在这两块硬盘上构建32位和64位Windows XP的独立双系统. 一.设置SATA硬盘 说明:本次用于试验的硬盘为: PATA接口的希捷40GB和SATA接口的希捷80GB硬盘各一块.怎样设置SATA硬盘,由主板决定,本文以硕泰克SL-K8AV2-R1L主板上的设置方法为例.各位朋

如何看linux是32位还是64位

查看linux机器是32位还是64位的方法: 方法一:file /sbin/init    或者   file /bin/ls 结果如下:/sbin/init: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped 如果显示 64-bit 则为64位:file /sbin/init/sbin/init: E

Windows Vista:32位和64位有什么区别

Windows Vista x64介绍 对于一般用户,肯定会考虑,既然现有32位版本的Windows还用的很好,干嘛要升级到64位呢,而且因为32位和64位的硬件(主要是CPU和主板)并不兼容,可能还要花费一笔不菲的费用.那么64位的优势何在?对于一般用户是否有必要升级到64位系统? Windows Vista x64 Edition 的设计初衷是:满足机械设计和分析.三维动画.视频编辑和创作以及科学计算和高性能计算应用程序等领域中需要大量内存和浮点性能的客户的需求. 专用技术应用程序的性能优势

用64位Juno 64位 SP1环境替换原来的Juno 32位 启动Eclipse报错

64位Eclipse运行时提示"Failed to load the JNI shared library \Java\jre6\bin\client\jvm.dll"的一个解决方案 由于开发环境改变,改用64位Juno 64位 SP1环境替换了原来的Juno 32位.结果启动Eclipse报错: "Failed to load the JNI shared library "E:\2000\Java\JDK6\bin\..jre\bin\client\jvm.dl

如何查看Oracle是32位还是64位

方法一:使用sqlplus 64位: [oracle@qs-wg-db2 ~]$ sqlplus / as sysdba; SQL*Plus: Release 10.2.0.5.0 - Productionon Sun Sep 25 08:57:22 2011 Copyright (c) 1982, 2010, Oracle.  All Rights Reserved. Connected to: Oracle Database 10g Enterprise EditionRelease 10.

菜鸟入门:Windows 7和WIN XP的32位和64位的区别

x86是对基于intel处理器的系统的标准缩写.X与处理器没有任何关系,它是一个对所有*86系统的简 单的通配符定义,是一个intel通用计算机系列的编号,也标识一套通用的计算机指令集合,由于早期intel 的CPU编号都是如8086,80286来编号,由于这整个系列的CPU都是指令兼容的,所以都用X86来标识所使用的 指令集合如今的奔腾,P2,P4,赛扬系列都是支持X86指令系统的,所以都属于X86家族. 这里的64位技术是相对于32位而言的,这个位数指的是CPU GPRs(General-P

win7 32位和64位的区别

x86是对基于intel处理器的系统的标准缩写.X与处理器没有任何关系,它是一个对所有*86系统的简 单的通配符定义,是一个intel通用计算机系列的编号,也标识一套通用的计算机指令集合,由于早期intel的CPU编号都是如8086,80286来 编号,由于这整个系列的CPU都是指令兼容的,所以都用X86来标识所使用的指令集合如今的奔腾,P2,P4,赛扬系列都是支持X86指令系统的,所以都 属于X86家族. 这里的64位技术是相对于32位而言的,这个位数指的是CPU GPRs(General-P

Linux如何使用shell查看Linux是32位还是64

  现在绝大多数用户使用的是Windows系统,都知道Windows系统有分32位和64位,其实Linux系统也有32位和64位之分,你知道你的Linux系统是几位的吗?下面小编就教你如何使用shell查看Linux是32位还是64位. 手动查看系统位数 查看linux系统位数,可以分别执行以下两个命令 getconf WORD_BIT 用于获取word的位数 getconf LONG_BIT 用于获取long的位数 对于64位系统以上两个命令应该分别得到32和64. 判断linux系统是32位