书香雅阁论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 365|回复: 0

【32与64位程序谁速度更快】

[复制链接]

384

主题

407

帖子

158万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1581367
发表于 2024-2-26 15:06:48|字数:1,407 | 显示全部楼层 |阅读模式
LV10 站长

这是我们之前提出的一个问题
【32与64位程序的区别】


关于这个问题书香也与其他技术大佬们在各大群里爆发了几次激烈的争辩,最终书香的观点赢得了胜利,嘿嘿

主流的观点是:
①:64位的速度是32位的2倍
②:64位比32位快,但是不一定快2倍
③:64位和32位谁快不一定,分场景
④:书香及部分人的观点是32位一般情况都比64位速度要快

对于这个问题,前后可以说是爆发了激烈的争论,书香被喷的还是很惨的,不过最后能够赢下这场辩论赛并收获新知识,书香觉得很值得
在理论中,64位框架确实比32位框架要快一半,但是这是针对于CPU的运算规则来讲的但是软件的快慢不是CPU说了算的,cpu并不起到绝对作用,也就是说,你运算很快,但是你先运算完又怎么样?你先等着我数据存储完毕才能进行下一条指令

①内存地址
我们写代码的时候会使用到变量存储数据,变量的数据是存储在内存条里面的,64位地址长度是64,32位地址长度是32,这意味着运算时要补32个0,这极大的消耗了设备的性能
图片.png


②硬件问题,这就是说64位程序的算力要是32位的2倍前提是硬件必须支持
图片.png

实测:

接下来辩论进入白热化阶段,越来越多的大佬开始参与这个话题,于是开始跑代码
运行速度对比.png

上图的代码是由VS2019生成工具这个编译器编译的,这个编译器可以说代表了当前程序开发执行速度这一块的最高水平了,大家自然是没有意见,本程序进行了100亿次的循环运算,最后32位程序耗时360毫秒,64位程序耗时781毫秒,多次测试结果相差不大,随后又进行了一些常用指令的运算测试,基本是32位程序更胜一筹

随后,又引来了一名大佬的加入,其表示研究过这个问题,并引用了下面大佬的意见
图片.png

提示1:32位程序和64位程序不是2套代码,你可以选择打包成32位和64位,说明这个问题是怕一些朋友觉得代码写法不一样不能对比

提示2:32位和64位指的是地址长度,不是32位系统能同时执行32条指令,64位系统能同时执行64条线程,我觉得这个说法比较炸裂

结论:
32位程序一般情况运行速度是要比64位快的,但是不是说32位程序的运行速度一定比64位要快,分场景的,在小部分情况了64位比32位要快。至于说64位的运行速度是32位的2倍那是基本上不存在的事

那为什么很多人觉得64位程序很牛逼,这个问题之前讲过了,因为32位程序理论支持最大内存就是4G,所以一些大型游戏和程序都是64位的,所以不是64位程序NB,而是人家这个程序NB只能打包成64位,这么多牛逼的程序都是64位的,所以觉得64位比32位牛逼很多


欢迎大家对于这个问题留下自己的见解,也可以网上搜索相关资料进行讨论

重点:
本文不在于讨论32和64谁更快,讨论这个问题是为了给新手提供条参考建议,大家开发的程序是否有没有必要强制去打包成64位,所以论证的核心点是64位程序是不是比32位快很多人认为64的程序实际处理速度是32位的2倍,所以总想着自己的程序必须64位,结果耗时费力,最后可能效果反而更慢,很多人问过我自己的程序升级成64要多少钱这个问题至于什么时候什么场景谁更快这个只能算闲谈了

所以我想表达的一个观点是,对于各位编程爱好者来说,你的程序没有必要去升级成64,你认为升级会速度加倍,实际上很有可能会减慢(至于到底有多大概率会减慢,我个人的意见是超过50%,具体多少还有待讨论)

(点击返回课程目录https://www.52hb.com/thread-58658-1-1.html




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|书香雅阁论坛 ( 湘ICP备17011672号-3 )

GMT+8, 2024-5-6 04:13 , Processed in 0.147368 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表