过去的经典正在逐渐消失。

不久前,小米应用商店、OPPO软件商店、VIVO应用商店、腾讯应用商店和手机助手联合宣布,未来上述应用商店发布的所有应用都必须支持64位架构。今年年底前,所有应用和游戏必须按计划上传64位内置应用包apk。根据官方时间表,中国市场所有移动安卓应用计划于2022年8月底全面普及。
事实上,一刀切移除32位app早已是业界共识。2018年iOS 11发布时,苹果已经彻底淘汰了32位应用。但Android作为开源共享项目,很难强制淘汰32位app。尽管谷歌也在2019年宣布提醒开发者停止开发新的32位应用或为其提供更新,但这一计划并未得到严格执行。但这一次,国内五大应用商店联合发布了淘汰32位应用的计划,正式吹响了国内安卓应用全面转向64位应用的号角。
那么32位和64位程序的区别是什么,这种升级的必要性是什么?笔者将为大家一一解读。
32位和64位有什么区别?
从技术角度来说,64位和32位其实差别很大。十多年前,当我第一次进入金融行业时,我做了应用程序从32位服务器到64位小型机的迁移。
从实际编码来看,64位和32位处理器的根本区别在于长整型long和指针型指针的长度发生了变化。在32位系统下,整数和指针的长度是相等的,所以在代码中常常将指针转换成int或无符号int进行运算。但在64位处理器编程时,给int变量赋值指针或长数据时,会出现数据截断和丢失的情况。
从工作机制来看,64位相对于32位的优势也很明显。由于32位CPU一次只能处理32位数据,且单个指令的处理能力不超过2的32次方,所以在加64位数据时,需要先加低32位,再加高32位,最后将低32位的进位与结果合并。至少需要4条指令才能完成,这对于64位处理器来说只是一条指令的问题。所以32位处理器的处理能力相对于64位处理器是不够的。

处理能力很强64位处理器可以兼容32位程序,但是让64位系统运行32位程序实际上是一种降级的运行状态。
一方面,32位程序在今天64位硬件上的性能会严重利用不足,反而会造成不必要的停滞;
另一方面,由于32位程序app往往是旧的,没有按照最新的开发指南进行编码,这也意味着32位程序往往不支持新操作系统的各种省电和智能休眠特性,其安全性无法得到保证。所以从这个角度来说,32位手机app的淘汰对广大用户来说绝对是一件好事。
也许很多读者会问,128位处理器能碾压64位处理器吗?
我个人认为这个问题的答案是否定的。一方面,目前SIMD,即单指令多数据技术,已经赋予了CPU在一个指令周期内处理128位甚至更长数据的能力。特别是新版ARM V9拿出了SVE2的新SIMD指令集,支持操作数加长,使得ARM芯片在一个指令周期内可以处理128-2048位数据。可以说处理字长的问题基本没有了,64位处理器寻址内存的能力一般可以达到16T甚至更多,已经足够强了,升级到128位意义不大。所以可以看出各大厂商对128位处理器的推出基本不“感冒”。
尊重!那些伟大的32位经典
在一个资深游戏玩家看来,32经典作品实在太多了,比如《生化危机》、《魔鬼城月夜》、《寄生虫夏娃》、《恐龙危机》等等。,都是3A级别的大作,尤其是《最终幻想》系列的第八部,其主题曲《望着我》至今经久不衰。
在之前的文章《MIPS已死,转向RISC-V》中,作者曾经提到,1994年,一代索尼Play Station诞生[/k0/],为30年前的古代广大玩家带来了令人尖叫的图像处理效率。当时Play Station的CPU是传说中的32位作品,MIPS R3000A。
当然,英特尔的80386也不例外。80386DX具有32位内部和外部数据总线以及32位地址总线,可以管理4GB内存空和64TB存储空。而且386奠定了X86系统三种工作模式的基础。实模式对应16位系统运行模式,直接内存访问空限制为1M字节;36位保护模式对应于32位工作模式。处理器可以直接访问4G字节的内存,并具有异常处理机制。在虚拟86模式下,386可以同时模拟多个8086处理器,从而增强多任务处理能力。
最初的80386 DX处理器集成了大约275000个晶体管,工作在12.5MHz,此后,80386处理器逐渐增加到20MHz、25MHz、33MHz,最后达到40MHz。也正是得益于386位和32位的强大性能,才使得当时的图形化操作系统Windows成为可能,奠定了Wintel联盟统治IT生态十余年的基础。
如果说32位CPU的选择还存在争议的话,32位操作系统的最强王者大概就是Windows XP了。凭借简单易用的功能和强大的稳定性,XP统治了PC操作系统十几年,甚至20年后,XP仍然只有不到5%的市场份额。今天手机要彻底告别32位app了,它在桌面市场为32位程序预留了一席之地。不过经典虽多,也经不起64位的狂轰滥炸。
来自64位处理器的降维攻击
近日,苹果搭载M1处理器的iPad Pro春季上市,让平板电脑再次大放异彩。不过我个人认为M1处理器的重要性等同于苹果2013年发布的A7处理器。

用A7处理器打造iPhone 5s。这是世界上第一款采用64位处理器的智能手机。当时iPhone 5s兼容32位应用,所以这个升级对当时的开发者来说是透明的,所以在发布之初并没有引起太大的反响。
但全面发布后发现,64位A7处理器火力十足,比之前的A6处理器高2倍,比第一代iPhone CPU性能高40倍,比GPU性能高56倍。这一重大升级也让苹果在移动SOC领域领先其他竞争对手整整一个位置。Android阵营的主要SOC供应商高通也打开了64位时代的大门。
从历史上看,台式机领域的64位处理器也是对32位处理器的降维打击。
2000年左右,AMD和Intel在处理器领域的竞争非常激烈。然而,2004年奔腾和赛扬D的推出奠定了英特尔在台式机处理器领域的主导地位。直到近几年AMD推出ZEN系列处理器,情况才有所改观。
把英雄带到天上人间不是免费的。虽然32位应用为整个移动互联网时代的繁荣做出了巨大贡献,但是随着时间的推移,英雄们也该和我们说再见了。在此,我们也向那些经典挥手告别,致敬。


