32位 VS 64位

不同视角、不同观点、深度探讨,禁止人品和道德攻击
lisir
帖子: 1187
注册时间: 2006-04-29 14:54
来自: 山东
联系:

#16

帖子 lisir »

基本上倒是没有太多的问题,就是有些软件不提供64位包,部分可以通过自己打包编译解决,但有的如那个audacious的歌词插件,编译也通不过。
学会看置顶帖、精华帖。
学会使用搜索。
常见问题解答和发帖需知
cleverysm
帖子: 26
注册时间: 2006-06-08 15:30

#17

帖子 cleverysm »

xhy 写了:在64位系统下运行32位软件 不会有任何的性能损失
大多数软件都有64bit版本 为何不用
64bit是未来的趋势
如果是用long呢?
数据的对齐问题也会造成两种平台下同一种数据结构大小不一致的。
甚至某些32位程序在64位下的性能反不如在32位环境下的。
当然,有64位版的当然最好还是用64位的啦。
wgn
帖子: 164
注册时间: 2006-04-29 15:54
来自: CUGB

#18

帖子 wgn »

我用过Ubuntu 7.04 64和WinXP x86-64(我只有1G的内存)
但是现阶段感觉并没有从64位系统中获得多少实惠的玩意
相反,会有一些软件或驱动出问题……
头像
tommy007
帖子: 1352
注册时间: 2007-02-18 0:42

#19

帖子 tommy007 »

现在用64位的确有点自找麻烦的感觉。但是也没什么不好的。
gxcooo
帖子: 394
注册时间: 2005-09-29 17:58

#20

帖子 gxcooo »

stlxv 写了:
xhy 写了:另外,64位运行同样的程序,所需内存会增大。
~~~~~~~~~~~~~~~~~~~~~~~~~~~ 纯属谣言
这很有可能,不过要针对多少位版本的程序来说,例如下面一段会导致内存泄露的程序:

代码: 全选

#include <malloc.h>
int main()
{
    malloc(sizeof(int));
    return 0;
}
16位的话,int占用2个字节;32位的话4个字节,64位的话8个字节。

所以,源程序同样,编译16/32/64位之后所占的内容是有区别的,而且64位会更加大。

错了! Linux 64和Unix 64是LP64, long和pointer是64位的,int还是32位
Linux debian 2.6.18.1lemote #1 Sat Jan 13 16:02:26 CST 2007 mips GNU/Linux
top - 10:13:17 up 70 days, 11:32 , 1 user, load average: 0.63, 0.61, 0.55
PhoenixJ
帖子: 1492
注册时间: 2007-08-09 3:33
系统: Windows 12.04

#21

帖子 PhoenixJ »

谁用谁知道。

某些人用64位是为了炫的,而不是为了干活的——干活的机器不会非得时时刻刻想到32和64位的兼容性。累不累阿。


打碎牙齿往肚子里面吞好了,反正那样的机器仅仅是学生宿舍的机器,不是实际工作的机器。

有小白鼠在完善64位的环境,我们几年后用现成的,有何不好。
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星

#22

帖子 xhy »

PhoenixJ 写了:谁用谁知道。

某些人用64位是为了炫的,而不是为了干活的——干活的机器不会非得时时刻刻想到32和64位的兼容性。累不累阿。


打碎牙齿往肚子里面吞好了,反正那样的机器仅仅是学生宿舍的机器,不是实际工作的机器。

有小白鼠在完善64位的环境,我们几年后用现成的,有何不好。
真正跑大型应用的机器 非64位不可
目前负债150多万
PhoenixJ
帖子: 1492
注册时间: 2007-08-09 3:33
系统: Windows 12.04

#23

帖子 PhoenixJ »

xhy 写了:
PhoenixJ 写了:谁用谁知道。

某些人用64位是为了炫的,而不是为了干活的——干活的机器不会非得时时刻刻想到32和64位的兼容性。累不累阿。


打碎牙齿往肚子里面吞好了,反正那样的机器仅仅是学生宿舍的机器,不是实际工作的机器。

有小白鼠在完善64位的环境,我们几年后用现成的,有何不好。
真正跑大型应用的机器 非64位不可
64位Unix早就很成熟了。没有这么多兼容32位的问题。
yaoabin
帖子: 21
注册时间: 2007-06-13 17:34

#24

帖子 yaoabin »

我也装了64位的UBUNTU,感觉不出来快一些。
beshrek
帖子: 9
注册时间: 2007-08-22 13:24

#25

帖子 beshrek »

xhy 写了:
stlxv 写了:
xhy 写了:另外,64位运行同样的程序,所需内存会增大。
~~~~~~~~~~~~~~~~~~~~~~~~~~~ 纯属谣言
这很有可能,不过要针对多少位版本的程序来说,例如下面一段会导致内存泄露的程序:

代码: 全选

#include <malloc.h>
int main()
{
    malloc(sizeof(int));
    return 0;
}
16位的话,int占用2个字节;32位的话4个字节,64位的话8个字节。

所以,源程序同样,编译16/32/64位之后所占的内容是有区别的,而且64位会更加大。
你确定你试过?
AMD64机器 int仍然是4字节的
我的是AMD64系统+AMD64的GCC

还有 你提供的那段样本代码 根本不会造成内存泄露
不知道你看过Linux内核源码没有 2.6的内核 运行这段代码 都不会造成任何副作用
在进程结束时 调用_exit系统调用 陷入内核 并且内核会自动回收分配给进程的任何存储单元
我的结论和楼上一致。
在Montavista Linux上,32位和64位的int都是4个字节。
头像
tornado
帖子: 49
注册时间: 2007-08-29 20:27

#26

帖子 tornado »

请问64位的wine 哪里下的,如果是自己编译的那就算了
头像
ving
帖子: 3741
注册时间: 2007-07-29 16:47
来自: 地精魔法学院

#27

帖子 ving »

ALU64位了吧
LancerX
帖子: 5
注册时间: 2007-09-14 17:45

#28

帖子 LancerX »

xhy 写了:
stlxv 写了:
xhy 写了:另外,64位运行同样的程序,所需内存会增大。
~~~~~~~~~~~~~~~~~~~~~~~~~~~ 纯属谣言
这很有可能,不过要针对多少位版本的程序来说,例如下面一段会导致内存泄露的程序:

代码: 全选

#include <malloc.h>
int main()
{
    malloc(sizeof(int));
    return 0;
}
16位的话,int占用2个字节;32位的话4个字节,64位的话8个字节。

所以,源程序同样,编译16/32/64位之后所占的内容是有区别的,而且64位会更加大。
你确定你试过?
AMD64机器 int仍然是4字节的
我的是AMD64系统+AMD64的GCC

还有 你提供的那段样本代码 根本不会造成内存泄露
不知道你看过Linux内核源码没有 2.6的内核 运行这段代码 都不会造成任何副作用
在进程结束时 调用_exit系统调用 陷入内核 并且内核会自动回收分配给进程的任何存储单元
一般int型所占长度是机器的自然字长。这个姑且不论,仅仅是指针从32位变到64位也会多占用内存的,所以这个是有可能的,关于这个段代码有无副作用根本没有意义去争论,哪个程序员会傻到写这样的东西?
头像
zengdesheng
帖子: 92
注册时间: 2006-11-05 10:43

#29

帖子 zengdesheng »

呵呵,还没有体验过。
刚整了一个AMD64的。
准备去体验一下。。。
头像
luojie-dune
帖子: 22033
注册时间: 2007-07-30 18:28
系统: Linux
来自: 空气中

#30

帖子 luojie-dune »

问题:因为ubuntu和有些发行版不一样。有些32位二进制包--不给代码无法编译的就不能用。
显卡性能大幅下降。。。打开compiz都卡。。。不用fusion的。。。
『这个世界都是我的 ,我爱你们』

ENTP ⥂ INTP ⥄ INFP ⇦ INTJ

在此发布的文章使用 Creative Commons Attribution-ShareAlike 4.0 协议
回复