1
CupTools 2014-12-16 09:14:58 +08:00
OpenStack Juno版支持CentOS 7,然而CentOS 7只有64版本。將來還有更多系統和軟件只支持64位
|
2
halczy 2014-12-16 09:15:12 +08:00 via iPhone
为什么还要装32位?
|
3
toduse 2014-12-16 09:17:31 +08:00 via Android
以前是硬件淘汰系统,现在是游戏淘汰系统,例如看门狗等游戏只支持64位,但是我觉得32位还会使用相当长的时间,有些行业软件没有支持64位,就像银行的ATM大多还是XP
|
4
wy315700 2014-12-16 09:18:27 +08:00
虚拟机里 少于4G内存还是会考虑32位
尤其是512内存之类的,跑64位简直是受虐 |
5
imn1 2014-12-16 09:24:23 +08:00
虚拟机、下载机或者出于需要低耗考虑的情况,依然32位是首选
|
6
ZMOM1031 2014-12-16 09:26:55 +08:00
会
|
7
Mac 2014-12-16 09:29:51 +08:00
上游企业有个万年不更新的JAVA客户端,只能在32位系统的SSL VPN下工作,64位操作系统无法连接VPN。
|
8
missdeer 2014-12-16 09:51:49 +08:00
我有个近10年的T43,32位的,前两天想装个PCBSD上去,一看人家已经只出64位版本了,得,继续用FreeBSD,顺便骂娘。
|
9
ryd994 2014-12-16 09:56:39 +08:00 via Android
@toduse 此xp和不是彼xp吧……
ATM用的不是XP embedded么,XP embedded还没停止服务的,嵌入式没法更新的啦 |
11
hjc4869 2014-12-16 10:20:06 +08:00 via iPhone
@toduse 看门狗要求6G RAM,32位桌面端Windows又没有官方PAE支持,铁定是玩不了啦。。
BF的PC版,32位不能调特效。RAM局限是一个很大的问题。 |
12
kernel1983 2014-12-16 10:38:26 +08:00
在虚拟机里面安装系统的时候,都是考虑32位系统的
|
14
gnup 2014-12-16 12:25:13 +08:00
64位系统内存开销要1.5倍与32位系统,4G内存用64位系统就是找虐。
你可以自己测试下,重点是先关闭虚拟内存。然后用64位玩魔兽世界,切换出来开2个WOWDB的查询页面,内存用尽溢出就崩溃了。32位的系统占用才2G左右 |
15
initialdp OP @gnup 对linux系统而言,内存占用没有1.5倍这么大。试过32位Debian的VPS和64位的VPS,内存相差不大,当然64位的系统稍微要多一些。我觉得512M以上内存的VPS,64位和32位的内存差异基本不太需要考虑。
|
16
jjx 2014-12-16 13:17:49 +08:00
2g vps上现在有意识的用32位的
|
17
efi 2014-12-16 13:23:26 +08:00
ARM?
|
18
gnup 2014-12-16 13:32:58 +08:00
@initialdp 内存占用单字节变双字节,双字节变四字节,以此类推,内存占用必然增多。就是达不到一倍,也少不哪去。
64位系统不是速度快了,而是扩大了基本单元以达到大内存使用的目的。 如果4G以内的内存,32位系统才是最理想的选择。 那些4G的win7x64都怎么想的? |
19
proudzhu 2014-12-16 14:10:22 +08:00 1
@gnup 会快,寄存器多了。
4G 装 x86-64 时一般使用绝对足够,到时内存不够时再加个内存就行了。 装 x86 位系统,到时候需要 x86-64 时再重装系统? 而且 x86 windows 最多才能 3.2G 内存。。。 |
20
em70 2014-12-16 14:11:10 +08:00 via Android
树莓派还得32位系统
|
21
msg7086 2014-12-16 14:29:05 +08:00
@gnup 单字节变双字节是什么鬼?只有指针会从32位变成64位,数据又不会变。
而且64位系统是寻址空间变大了,怎么会是扩大基本单元?你以为是4K硬盘搞基格式化啊…… |
22
andybest 2014-12-16 14:30:17 +08:00
128M 内存的 VPS 应该装 64 位系统吗
|
24
viator42 2014-12-16 14:39:45 +08:00
现在手里已经找不到32位的安装盘了
|
25
x86 2014-12-16 14:40:28 +08:00
虚拟机
|
26
usedname 2014-12-16 14:55:45 +08:00
不做开发的话,4G内存win7 x64其实还是够用的,不过win7 x86 + 600M ramdisk 也是爽的飞起,不过内存这种东西越大越爽,谁用谁知道,反正我是不会下载32位的镜像了。。。
chrome一定跟内存厂商有勾结 |
28
Cu635 2014-12-16 15:10:52 +08:00
lz,操作系统有好多情境了,大的就有桌面、服务器、嵌入式三种情境啊。
桌面领域又可以分个人桌面和公司给配的生产环境了吧,个人桌面是自己能够控制的,这才有“考虑”这一说啊。公司给配的自己是没法控制的,我想用64位公司还可能不给呢。 而现在玩树莓派、openwrt的人越来越多,嵌入式也不能忽略了啊。嵌入式基本是有啥用啥吧,而且嵌入式设备的性能能不能跑64位系统也是个事儿。也没法“考虑”啊。 服务器也有性能问题,自己一个vps好歹自己能控制,不过要是384M内存跑64位的话是找虐。而有些重要服务器哪怕自己是运维,要考虑的也是很多的。 |
31
gnup 2014-12-16 15:18:22 +08:00
应为魔兽世界占内存大,所以用魔兽世界一下子就测试出来了
|
32
msg7086 2014-12-16 17:00:12 +08:00
@gnup 首先吧,山口山本来就没有可比性。
山口山内部各种插件系统,lua虚拟机什么的各种,3D渲染什么的各种,而且内部的内存管理也是黑箱。 万一人家只是因为64位所以就多吃掉点内存来提升运行性能呢? 而且现在战网启动山口山默认就是64位了,你觉得暴雨是吃饱了撑的在同等条件下要多吃你点内存玩么。 常用软件不至于会产生那么大的内存占用差别。 @wy315700 这个long的大小是跟着系统/编译器走的。int一般是32位,long long一般是64位,而long可以任取32或者64。一般的程序不应该直接用long,否则会出现32位/64位运行结果不一致的问题。 就PHP这个内置long的问题已经造成32位和64位运行环境下整数溢出上限不一致了。 |
35
gnup 2014-12-16 18:01:23 +08:00
64bit计算主要有两大好处:可以进行更大范围的整数运算;可以支持更大的内存。
不能因为数字上的变化,而简单的认为64bit处理器的性能是 32bit处理器性能的两倍。实际上在32bit应用下,32bit处理器的性能甚至会更强,即使是64bit处理器,目前情况下也是在32bit应用下性能更强。所以要认清64bit处理器的优点,但不可迷信64bit。 ----------------百度百科 简单来说、64位和32位、他们处理整数数据单元的大小 一个是64位(8字节) 一个是32位。 64位系统占用的内存地址也是64位、因而比32位要耗内存。 |
39
initialdp OP |
40
gnup 2014-12-16 19:00:51 +08:00
@initialdp
有条件你关闭虚拟内存,用 Chrome Firefox 在 win32 win64 跑跑。你就不会说没差距了。试了才好说话。 到了8G 16G+内存成为最低标准,普及的时候,那个时候才能考虑, 现在一大堆4G内存的电脑跑win 64 ,还总吵吵硬盘太慢,那是因为内存不够,虚拟内存用的太多导致的 |
41
librehat 2014-12-16 19:01:59 +08:00
|
43
msg7086 2014-12-16 20:55:21 +08:00
@gnup
#18楼 QUOTE { 内存占用单字节变双字节,双字节变四字节,以此类推,内存占用必然增多。 } #21楼 REPLY { 单字节变双字节是什么鬼?只有指针会从32位变成64位,数据又不会变。 } #35楼 QUOTE { 简单来说、64位和32位、他们处理整数数据单元的大小 一个是64位(8字节) 一个是32位。64位系统占用的内存地址也是64位、因而比32位要耗内存。 } 我就引用上面的对话,你自己看你说的是什么,我说的是什么。 你觉得32位下占用1KB的char[1024]到了64位下会占用2KB么…… 另外64位系统下32位程序性能比64位好我也是醉了。32位应用程序白白比64位程序少用了一堆寄存器,竟然还能运行得更快,有此黑科技请务必告诉我这是怎么做到的。 度娘百科还是不要引用的比较好,否则会引起很多笑话的。 |
44
gnup 2014-12-16 21:13:39 +08:00
@msg7086
你说你弱智不,还当自己会点啥! 你都指定char[1024]了,他必然是1024.能不能在弱点!!! 是32位CPU,跟64位CPU比较.麻烦你看字能不能仔细点 度娘的东西怎么也不你说的靠谱 |
45
msg7086 2014-12-16 21:35:47 +08:00
@gnup 顿时开始同情起你的逻辑能力了。
先是自己说单字节变双字节,双字节变四字节,以此类推,我举个单字节的char又说不会变,打自己脸也不能这样打啊,看着都没意思。 引用你#35楼 「即使是64bit处理器,目前情况下也是在32bit应用下性能更强。」 能不能麻烦你自己发的东西自己看仔细点? 要是你真的觉得度娘能比我靠谱,那我们还是不要聊下去了,位面不同没法谈。 至于骂人弱智嘛,我也不是不能理解。总有人觉得别人都是弱智就自己智商特别高,特别优越。 |
46
gnup 2014-12-16 21:35:51 +08:00
一帮XX.都以为自己会点啥,轮番车轮战.
都跟你说了,你用32 跟 64的系统测试下,对比下,看看是不是64的占用内存非常大. 都在闭着眼睛说话. 多做几次测试看看,内存占用那么大,你行你就给我解释解释. 都办瓶子水,还真以为自己懂呢 |
47
cchange 2014-12-16 21:37:45 +08:00
有些行业 像我们的工控行业用旧系统很正常,有些软件有十年以上的历史。 现在工业现场用VB6 VC6比比皆是……
|
48
initialdp OP @cchange 是的。遗留系统、嵌入式系统,当然不得不保留对32位、甚至16位系统的支持。
对于新的服务器端程序(基于x86-64),尤其是基于通用linux系统(例如CentOS、ubuntu等)的程序,我觉得可以考虑放弃32位版本了,同时维护两个版本的话对小公司而言成本有点高。 |
49
gnup 2014-12-16 21:54:01 +08:00
|
50
gnup 2014-12-16 22:07:34 +08:00
@msg7086
也不用那么多废话了. 整理了下你的思路,你的意思 "指针会从32位变成64位" 而数据内存占用不会变 我知道你根本可能都没测试过,就来讲一些不靠谱的理论. 你就说这多出近一倍的内存占用是谁占用?去哪了?为什么内存开销这么大?也总得有个用途吧? 别平白无故的被64位用的内存,被你一说好像没用是的. 你连测试都懒得测试,你能讲出什么理论啊 |
51
msg7086 2014-12-16 22:24:20 +08:00 2
@gnup 大清早的不想聊太多这种事情,累。
还是那句话,64位和32位比,不是比个浏览器比个魔兽就能解决问题的。 每个应用的情况都不一样。 比如32位程序因为有内存寻址模型影响,所以有2G的上限。 就算打开LAA大内存寻址,最大寻址空间也不能超过3G,因为3G以外的区域是内核保留的。 对于仅仅只有2G大小的内存空间来说,像山口山这样的程序就必须严格限制自己的内存消耗。 明明读取了一张图片或者一个材质,却因为顾及内存大小而不得不在稍后就清理掉以释放内存。 而对于64位的程序来说,内存空间可以用起来更轻松。 稍后还会用到的图片或者资源,就先在内存里放一下,反正就算整体内存占用超过2G也不会出问题。 这样虽然内存占用更大了,但是运行起来更流畅,延迟是更小。 山口山这种即时游戏,当然是运行效能越高越好。 浏览器里大量的图片、图层、javascript代码、flash广告,当然也是效能越高越好。 为了效能,多使用一些内存,就和ramdisk一样。要是这样就指责说占用内存过多,实在是冤枉了。 因此说64位的软件可以运行得更快,不只是纸上谈兵,是有实际依据的。 另外64位下可用的寄存器也更多。32位程序做64位计算的时候,必须要用到SSE指令集才能快速计算,否则就只能用32位计算来模拟,效率非常差。64位指令集加入了RAX等扩展寄存器,直接在寄存器上就可以做64位运算,节约了拷贝到SSE寄存器的时间,或是用32位计算来模拟的时间。 而且64位程序在编译的时候可以更好地利用编译器特性进行优化。例如现在很多Linux发行版里的32位程序都是基于i386编译,因为32位从20多年前的386就出现了。而64bit则可以直接对应现代处理器,例如P4或者速龙之后的版本,因此可以直接假定处理器会带有SSE指令集,也因此所有的可以并行的操作,都会去用SSE指令集来优化。例如memcpy,32位下为了兼容性可能只能逐字节复制,最多用MMX来优化(但是会和浮点数运算冲突),而64位下可以直接做MEM->XMMREG->MEM的批量复制,速度快得多。 对比以下代码 32位,i386兼容: MOV EAX, [p] MOV [q], EAX 一次复制4字节 64位,使用SSE: MOVNTDQA XMM0, [p] MOVNTDQA [q], XMM0 一次复制16字节 后者的性能至少是前者的2倍或者更多。 所以在同一个基准线上,64位的程序会运行得更快。 |
52
gnup 2014-12-16 22:56:59 +08:00
@msg7086
你的意思是64位内存占用大不是白用的,是被缓存了.开发人员用起来也会比较轻松.不用考虑太多内存占用的问题.你是想说类似MongoDB这种内存数据库吧,但是内存也得够大啊. 你举的64位的例子得在大量运算的情况下才明显,运算量小差别不明显.这是64位的优点. 而内存的开销相对与32位系统要大很多. 而对于4G的内存的64位系统,装上了你这样肆无忌惮的使用内存的程序.而不考虑内存情况,那结果就是内存不够用.或使用虚拟内存,或程序崩溃. 4G的内存32位的系统可以使用的非常舒服,而换成64位后,马上感觉内存不够了就必须升级内存. 这时32位系统的优势就明显了.吃内存少.这也是我想说的,4G以下的内存32位的系统 |
53
msg7086 2014-12-16 23:19:36 +08:00 1
@gnup MongoDB只是其中一个特例。
我上面也说了,具体的情况需要具体分析,每个应用的情况都不一样。 有些软件对速度要求高,所以他们更吃内存一些。 你不能在享受到速度快的同时又去指责内存消耗大。 对于只有4G内存的系统来说,挑选合适的软件才是更重要的。 玩游戏的话本来就应该配置更多的内存以优化性能。 玩山口山天天H RAID或者5H的你只配个4G内存是几个意思。 应用程序,比如像Chrome这样的浏览器,以多进程高性能为卖点,本来就是吃内存吃得多。 如果要省着内存用,Opera显然是更合适的,省着点用2G内存都能跑得欢。 弹性内存占用,大内存吃得多,小内存吃得少,速度和资源占用兼顾。 至于4G内存。说起来我用4G已经是很久很久以前的事情了。 记得最起码4年前就已经在用8G了,3年前就在用16G了。 另外我从第一个回帖就已经说了,我针对的论点是你说的一变二的占用。 我不否认4G内存用32位更好,但是我不能接受你说的64位下占用率直接变2倍这种没有科学依据的说法。 只看表面现象不讨论本质,实在谈不上是科学依据。 这就天亮了,我也不多说了,睡觉去了。 |
54
ryd994 2014-12-17 02:54:49 +08:00 via Android
看楼上论战我也是醉了,32位消耗略小这是有的
so what? 于是就该大多数人迁就少数老爷机?而且即使是4g以下,性能就真的差那么远么?能用老爷机的人,都是只上上网看看电影的人,谈什么性能?要用老爷机来玩游戏的人,只有一个原因,没钱。 以少数人的少量性能损失为代价,减轻了维护成本,加快了开发,事实上对所有人包括老爷机用户都是有利的 希望各位的讨论围绕主题,不要歪到单纯的性能比较上去,否则我还可以说单片机上8位最好 |
55
esile 2014-12-17 03:05:58 +08:00
小vps继续32位
|
56
initialdp OP @esile 这得看小到什么程度啊。我觉得内存低于512M,可以使用32位,超过512M的都可以直接上64。
以我们生产环境的服务器(Debian系统)为例,32位系统时内存占用190M,CPU平均为5.1%,升级为64位系统后内存占用大约是200M, CPU平均为5%。内存占用略有提升,效率略有提高。 因此我觉得以目前的市场环境,内存不是制约因素,更好的扩展性、更强大的底层支持,都值得将系统升级到64位。另外非常重要的是,统一到64位,开发者的维护成本也要少一些。 |
57
wy315700 2014-12-17 09:03:20 +08:00
|
58
choury 2014-12-17 09:08:08 +08:00
@gnup 如果你看了32位和64位的代码调用传参的规定就不会这么认为了
以下内容来自https://zh.wikipedia.org/wiki/X86%E8%B0%83%E7%94%A8%E7%BA%A6%E5%AE%9A 在32位下面,所有参数都是压栈传递(除了fastcall,因为这个调用方式没有标准) 而在64位系统下面,微软x64调用约定使用RCX, RDX, R8, R9这四个寄存器传递头四个整型或指针变量(从左到右),使用XMM0, XMM1, XMM2, XMM3来传递浮点变量。 头六个整型参数放在寄存器RDI, RSI, RDX, RCX, R8和R9上,同时XMM0到XMM7用来放置浮点参数。 所以说除非你的程序不进行任何其他的函数调用,否则对性能上肯定是有提升的,不要相信百度百科的鬼话。 |
59
Ixizi 2014-12-17 09:22:40 +08:00
32位用 的只会越来越少
|