免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: wangxinus
打印 上一主题 下一主题

[C++] 64位的操作系统编程一样吗 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-10-10 15:57 |只看该作者
原帖由 c/unix 于 2009-10-9 23:39 发表


32位的可以在64位用,你确定?

我试过 可以运行,但是

论坛徽章:
0
12 [报告]
发表于 2009-10-10 15:59 |只看该作者
原帖由 VIP_fuck 于 2009-10-10 09:11 发表
64和32还是有一些区别的。
最好还是别把32的程序拿到64上运行,也别反着来。
有时候因为数据长度不一样,会产生很奇怪的结果。这种bug也很不好修改。

64 上编译的程序 不能在32上运行, 32 编译的程序能在64上运行, 我刚试过!

论坛徽章:
0
13 [报告]
发表于 2009-10-10 23:29 |只看该作者
原帖由 yulihua49 于 2009-10-10 15:51 发表

不太一样。
long是64位的,地址也是64位,结构中某些边界按8字节对齐,用sizeof()可以测出来。
我们测量两种模式,还是64位快,2-2.5倍。


以前用的系统多是32位的,但是这次我准备尝试一下64位的操作系统。
想问一下各位,平时编程用的32位系统还是64位的?

我准备用fedora,据说64位的兼容性比较好,各位觉得呢?

论坛徽章:
0
14 [报告]
发表于 2009-10-12 14:46 |只看该作者
1 指针拥有8个字节,不再是那个和intl类型长短一样了。它将带来的好处就是,系统具有更为广阔的寻址空间。寻址范围从4GB变成了4EB。

2 虚拟内存不再是2GB(3GB),为什么不是4GB,因为另外的那2GB是内核用来做映射需要占用的。具体原因参看其他的文章。那么虚拟内存到底编程多大了?4EB/2 2EB。实际不是这样的,它被限定为4TB不过这个大小已经可以让我们爽几年。

3 分页变化,可分页和不可分页内存池大小由470MB,256MB变为了128GB。暂时不会再出现分页不足的问题。每个页表从4k变为了8k。这点是需要小心的,每个页表的大小应该是没有变化。应该是由1024 x 4 bytes变为了1024x8bytes。

4 变量大小,在64位系统中long类型有可能不在委屈的使用4自己,而拥有了8字节。这里只能说是可能,因为根据编译器的不同具体的每种类型占多少空间还不能确定。在64位编译器中会出现4中不同的数据模型

Data model short int long long long pointers
LLP64 16 32 32 64 64
LP64 16 32 64 64 64
ILP64 16 64 64 64 64
SILP64 64 64 64 64 64

大部分的编译器将会使用LP64。而微软的编译器貌似会继续使用LLP64。也就是说从VC++系列一直代码将更加容易。
5CTime对象,这个对象在32位系统中不是让很非常满意,因为它使用long类型记录时间,导致时间范围只能是
0-4 2 9 4 9 6 7 2 9 5
1970年1月1日-2 0 3 7年

6 内存对齐

Itanium架构的系统将把内存对齐的问题推给开发人员。开发人员的错误使用会使得性能变慢,乃至系统崩溃。

7 性能提高

8 系统内核操作,可能现在的HOOK操作不能够在64位系统中正确的运行。

9 汇编,这个变化可能是最大的,所有的偏移量计算可能都需要重新计算。

参考:http://blog.csdn.net/Splendour/archive/2009/01/07/3726564.aspx

论坛徽章:
12
2015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之同曦
日期:2017-03-17 19:13:162016科比退役纪念章
日期:2016-11-07 08:28:12luobin
日期:2016-06-17 17:46:36wusuopu
日期:2016-06-17 17:43:4515-16赛季CBA联赛之福建
日期:2016-01-14 12:49:22程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2015-06-08 22:20:00程序设计版块每日发帖之星
日期:2015-06-08 22:20:002015年亚洲杯之科威特
日期:2015-03-24 14:21:272015年迎新春徽章
日期:2015-03-04 09:57:092016科比退役纪念章
日期:2018-04-10 16:20:18
15 [报告]
发表于 2009-10-12 15:15 |只看该作者

回复 #12 齐得龙强更强 的帖子

呵呵,这个怎么说那。
我只能说说我的经验吧。

我说的比较直接啊,别生气啊。

程序运行成功,没有问题,是程序的结构比较简单。当涉及东西多了,问题自然就出现了。

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
16 [报告]
发表于 2009-10-12 16:50 |只看该作者

回复 #14 zpp71 的帖子

此文有错误,参考请慎重

论坛徽章:
0
17 [报告]
发表于 2009-10-12 19:17 |只看该作者

回复 #4 c/unix 的帖子

一般可以, 一般硬件向以前兼容

论坛徽章:
0
18 [报告]
发表于 2009-10-12 19:20 |只看该作者
multilib google一下。

论坛徽章:
0
19 [报告]
发表于 2009-10-12 21:53 |只看该作者
原帖由 koolcoy 于 2009-10-12 16:50 发表
此文有错误,参考请慎重


请赐教?

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
20 [报告]
发表于 2009-10-13 10:36 |只看该作者
原帖由 zpp71 于 2009-10-12 21:53 发表


请赐教?

就x64而言:
>>每个页表从4k变为了8k
x64支持好几种页表
那个可分页和不可分页内存我没看懂是什么意思~~

[ 本帖最后由 koolcoy 于 2009-10-13 10:37 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP