当前位置:  技术问答>linux和unix

100分+100分 aix64位编程求助,如何编写64位c程序啊?谢谢大家!!

    来源: 互联网  发布时间:2016-05-19

    本文导语:  100分+100分 aix64位编程求助,如何编写64位c程序啊?谢谢大家!! 怎样能提高程序的效率,加快运行速度,合理利用64 位? 谢谢了! | 在AIX上,首先你的内核要是64位的,这样应用可以是32...

100分+100分 aix64位编程求助,如何编写64位c程序啊?谢谢大家!!
怎样能提高程序的效率,加快运行速度,合理利用64 位?


谢谢了!

|
在AIX上,首先你的内核要是64位的,这样应用可以是32,也可以选择编译成64位。
可以通过一下命令检查内核的位数:
prtconf | grep Kernel

如果是64-bit,那就没有问题了。

然后有两个办法把应用编译成64位:

1.增加-q64选项,无论使用cc, xlc, xlC,都可以用这个选项。

2.设置环境变量,export OBJECT_MODE=64,然后编译。

如果该开发环境下都是开发64位应用,建议使用第二种方式。在.profile中设置环境变量即可。

另外需要注意的是,应用需要链接的其他库(比如oracle或informix相关库文件)也必须是64的,否则会报错。

|
64位的开发和32位的一样吧,代码该怎么写还是怎么写,只是编译的区别!
优化的问题应该首先是找出瓶颈,然后对症下药,
真还没感觉出来64位和有32位对写代码,优化有啥影响,感觉就是透明的!

|
顶楼上的,单纯的32到64的移植不会有明显的性能提升,除非在32下2GB内存不够用,需要更大的内存空间来缓存数据。

|


一般的程序从32位移植到64位没有问题,但因为数据类型long和time_t,以及指针地址在64位下都变成8字节(还有一些派生出来的数据类型,象size_t, socklen_t也都发生变化),因此有些程序如果代码风格不好,比如说把指针固定认为是4字节,或把long或time_t也认为就是4字节,就有可能出问题。

比如这样的代码移植到64位就会有问题:
long *p=(long *)malloc(4*n);

而如果写成这样就不会出问题:
long *p=(long *)malloc(sizeof(long)*n);

因为数据类型的变化,使用有些函数就必须要小心(特别是传地址的),如果原来代码不严谨,会带来数据类型的隐式转换,后果不可预期。

是否要用64位,看你的需要,光从性能提升来看应该不是必须的。因为64的寻址空间扩大很多,如果你的进程需要的内存在2G以上,可以考虑使用64位。当然还有一个是,64位是趋势,IBM的Power6机器已经不支持32位的内核(当然应用还是可以是32位的)。



|
我们都是移植,没有优化,代码都是统一的,要小心指针位数,从32位变成了64位,long也从32位变成了64位,其他的没变

|
其实64位的系统,数据类型的长度基本都没变,指针变成了64位的了,寄存器名字变了,也加长到64位的了

如果要提高性能,最最根本的还是从算法上着手,如果算法已经没法再改进了而仍然需要还提高性,那就编译成

汇编代码,然后看汇编指令,手动的进一步优化,但是对性能要求这么高的程序貌似现在很少见很少见了...

|
我记得gcc有个选项,编译的时候. -m64之类的东西

|
最简单的方法就是在64位的系统上开发,这样编译出来的程序默认就是64位的。

|
虚拟一个64位的系统吧,然后在上面倒腾倒腾!

|
顶楼上的。。学习。。。

|
帮顶,学习一下

|
帮顶,没做过64位编程。

|

没那么复杂,主要指针与int型转换会出问题

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 有关 AIX 编程兼容性方面的疑问
  • AIX编程的书
  • 在AIX和UNIX上可以使用什么编程语言?
  • aix下c语言中如何编程查看当前系统的版本号
  • 如何AIX UNIX 主机在进程中通过C编程获取进程名
  • (来者有分)AIX 下的gtk编程错误 collect2: /opt/freeware/lib/libintl.a: not a COFF file
  • 问个问题 紧急!!明天要考试了 大可能考这题 AIX编程的 希望大家可以帮忙
  • 请教AIX 下UDP编程
  • 在AIX环境下做SHELL编程中使用FTP遇到的问题,请大家帮忙
  • 性能问题:Solaris和AIX下面如何编程虚拟内存的大小、单个CPU占用率?
  • AIX 5.3下调用windows 2000上的exe程序,且AIX下需要得到windows下程序执行的返回结果
  • AIX目前最新的编译器都支持C++0x标准里的那些内容?GCC 4.5.0是否能够在AIX上安装?
  • 公告:CSDN AIX论坛有奖话题讨论活动(七)——本期话题:在海量运算方面,和Linux系统相比,AIX系统有优势吗?
  • 哪里可以下载AIX操作系统?
  • 公告:CSDN AIX论坛有奖话题讨论活动(四)——本期话题:从开发周期上来看,和HP-UX、Solaris相比,AIX系统有优势吗?
  • 公告:CSDN AIX论坛有奖话题讨论活动(八)——本期话题:除了数据库应用,还有哪些应用也可以运行于AIX系统之上?(和Linux系统相比较,性能更优)
  • AIX共享内存分配问题
  • 编程语言 iis7站长之家
  • aix上编译问题
  • linux -> aix 发展
  • 公告:CSDN AIX论坛有奖话题讨论活动(六)——本期话题:AIX的动态工作负载分区和Hypervisor的逻辑分区相比,有何优劣?
  • aix问题求教--愿给200分!!!
  • 关于AIX的进程间通讯的方法
  • window 向aix 的移植问题----在线等待
  • 普通pc机,可否装aix操作系统?
  • 有谁在AIX下装过下载版的websphere
  • IBM AIX可以用其他的unix 或者 lunix代替吗?
  • Oracle10g在AIX上的安装准备工作《Oracle大型数据库系统在AIX/unix上的实战详解》 集中答疑 40
  • 请问AIX下用什么命令能够获取CPU型号、频率信息,多CPU情况下
  • 在AIX(4.3)系统上如何查看内存情况


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3