曾经的经典都在逐渐消失。

作者 | 马超

出品 | CSDN(ID:CSDNnews)

Android 全面拥抱 64 位 APP

不久前,小米应用商店、OPPO 软件商店、VIVO 应用商店、腾讯应用宝、百度手机助手联合宣布,今后在上述应用商店发布的所有应用必须支持 64 位架构,今年年底前全体应用及游戏均需按计划上传含有 64 位构建的应用包 apk。按照官方时间表,中国市场所有的移动安卓应用程序定于 2022 年 8 月底前全面普及 64 位。

其实全线下架 32 位 APP 早已经是业界的共识了,2018 年 iOS 11 发布的时候,苹果就已经全面淘汰了 32 位的应用 APP,但是安卓作为一个开源共享的项目,很难强制推行淘汰 32 位程序,虽然 2019 年谷歌也曾公告提醒开发者们停止开发新的 32 位 APP 或为其提供更新,但是这项计划并没有被严格执行。不过本次国内五大应用商店联合发布淘汰 32 位 APP 的计划,正式吹响了国内安卓 APP 全面转向 64 位 APP 的号角。

那么 32 位和 64 位的程序到底有什么不同,此次升级又到底有何必要?下面笔者就为大家一一解读。

32 位和 64 位相比到底差哪了?

从技术角度上看 64 位与 32 位,其实差异很大。十几年前,笔者刚刚进入金融行业的时候,就曾做过将应用由 32 位的服务器向 64 位小型机进行迁移的工作。

从实际编码来看,64 位与 32 位处理器的根本区别在于长整型 long 和指针类型 pointer 的长度发生了变化。在 32 位体系下,integer 与 pointer 长度相等,因此代码中常常把 pointer 转换为 int 或者 unsigned int 以便运算。但对 64 位处理器编程时,把指针或者 long 类型数据赋值给 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 位处理器基本都不太“感冒”。

Respect!那些伟大的 32 位经典

在笔者一名资深的游戏玩家眼中,32 位经典作品简直多到了数不胜数的地步,《生化危机》、《恶魔城月下夜想曲》、《寄生前夜》、《恐龙危机》等等都是 3A 级大作,尤其是最终幻想系列的第 8 部,其主题曲《Eyes on me》至今还是经久不衰。

笔者在前文《MIPS 已死,转身 RISC-V》当中曾经提到过,1994 年一代索尼 Play Station 横空出世,在 30 年前的远古时代就为广大玩家带来了为之尖叫的图像处理效率,而当时 Play Station 所搭载的 CPU 正是 32 位的一代传奇之作,MIPS R3000A。

当然英特尔的 80386 也是不遑多让,80386DX 的内部和外部资料汇流排是 32 位,位址汇流排也是 32 位,可以管理 4GB 内存空间和 64TB 的存储空间。而且 386 还奠定了 X86 体系延用至今的三种工作模式。其中真实模式对应 16 位系统的运行模式,直接内存访问空间被限制在 1M 位元组;386 保护模式对应 32 位的工作模式,处理器可以直接访问 4G 位元组的内存,并具有异常处理机制;虚拟 86 模式中 386 可以同时模拟多个 8086 处理器,来加强多工处理能力。

初期推出的 80386 DX 处理器集成了大约 27.5 万个电晶体,工作频率为 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 领域领先了其它竞争对手整整一个身位。也让安卓阵营的主要 SOC 供应商高通开启了 64 位的时代大门。

从历史上看,桌面领域 64 位处理器对于 32 位处理器同样也是降维打击。

2000 年左右,AMD 与英特尔在处理器领域的竞争非常激烈,不过 2004 年的奔腾与赛扬 D 的推出,奠定了英特尔在桌面处理器领域的统治地位,直到近几年 AMD 推出 ZEN 系列处理器情况才得以改观。

时来天地皆同力,运去英雄不自由,32 位应用程序虽然为整个移动互联网时代的繁荣做出过巨大贡献,但随着时间流逝英雄已经迟暮,该对我们说再见了,在此我们也挥手向那些经典告别,并致以敬意。

☞比尔盖茨27年婚姻破裂,8000亿财产咋分配?
☞程序员薪资两极分化,如何成为高薪程序员?☞每天穿女装上班的大厂程序员:我知道自己是个男生
☞直接学 Vue 3 吧 —— 对话 Vue.js 作者尤雨溪
☞JavaScript 开发者数量暴涨、C# 超越 PHP,揭晓全球开发最新趋势!

“32 位应用已死!”相关推荐

  1. Fedora 31 及以后版本将不再支持 32 位内核已实锤

    据 phoronix 报道,关于 Fedora 31 停止构建 32 位 x86(i 686)内核的提议在上周五的 Fedora 工程和指导委员会(FESCO)会议上获得批准. 本次会议也提到了是否移 ...

  2. 弃用 32 位!所有基于 IntelliJ 的 IDE 将不再支持 32 位操作系统

    整理 | 苏宓 出品 | CSDN(ID:CSDNnews) 近日,JetBrain 宣布旗下所有基于 IntelliJ 的 IDE 将停止支持 32 位操作系统,其中包括 AppCode.Clion ...

  3. 电脑32位和64位操作系统的区别

    "位",简单地理解就是CPU的寻址空间.在计算机技术的发展史上,位的演变起到了举足轻重的作用.从1971年的4位计算到如今已来临的64位计算时代,这中间经历了漫长的演变过程. 19 ...

  4. 64 安装_解决“不能安装 64 位Office,因已安装 32 位 Office 产品”问题

    换了个电脑装64位的Office 2010(Office_64),双击setup刚准备装,就收到以下错误提示: "不能安装 64 位版本的 Office 2010,因为您当前已经安装 32 ...

  5. 31. 如何计算对象已死(引用计数器算法、可达性分析算法)32.对象是否可 GC?33. Minor GC 和 Full GC

    31. 如何计算对象已死 31.1.引用计数器算法 引用计数器算法是给每个对象设置一个计数器,当有地方引用这个对象的时候,计数器+1,当引用失效的时候,计数器-1,当计数器为0的时候,JVM就认为对象 ...

  6. 在安装project2010 64位时提示 “无法安装64位office,因为已有32位版本”解决方法

    在安装project2010 64位时提示 "无法安装64位office,因为已有32位版本"解决方法 参考文章: (1)在安装project2010 64位时提示 "无 ...

  7. 无法安装64位office,因为已有32位版本

    这里写自定义目录标题 1.无法安装64位office,因为已有32位版本 2."无法安装64位office,因为已有32位版本"解决方案 3.若要运行此您必须首先安装.net fr ...

  8. 无法安装64位office,因为已有32位版本……解决办法

    无法安装64位版本的Office,因为在您的PC上找到了以下32位程序,请卸载所有32位Office程序,然后重试安装64位Office.如果要安装32位Office,请运行32位安装程序" ...

  9. 判断oracle客户端是32还是64,64位-如何知道已安装的Oracle Client是32位还是64位?

    64位-如何知道已安装的Oracle Client是32位还是64位? 操作系统:Windows 2008 Server R2 Oracle客户端:11.2 非常感谢 8个解决方案 73 votes ...

最新文章

  1. cc2530期末试卷_无线传感网期末考试 zigbee期末考试试题
  2. 【收藏】Sentinel 高可用流量管理框架、服务熔断降级等
  3. 一段话系列-Java是否是解释执行语言?
  4. Java安全编码之用户输入
  5. rocketmq怎么保证数据不会重复_rocketmq如何保证消息不丢失
  6. OpenGL pipeline (very important)
  7. leetcode896. 单调数列
  8. layer加载的页面偶尔出现空白_Layer-Cake 模式的设计
  9. 想尝试转前端,但不知道从何学起
  10. 尽量少一点甲方思维,也尽量少一点弱势方思维
  11. C 线程同步的四种方式(Linux)
  12. 开发软件安装教程-MATLAB2016b安装教程图解
  13. 水系图一般在哪里找得到_腾远带你了解:虹吸排水系统原理、组成及应用优势...
  14. Android app客户端性能测试工具Emmagee 浅析
  15. 硬盘属于计算机主机的一部分,计算机的硬件组成部分分别是什么?
  16. 如何把网站程序文件快速上传到服务器空间经历分享
  17. 国债(长短期)、财政赤字、利率、美元指数、国债收益率关系
  18. 面试经典-你为什么觉得自己能够在这个职位上取得成就?
  19. pdf及word文档的读取 pyPDF2,docx
  20. Java GridFS MongoDB 下载文件 内容不完整

热门文章

  1. 院士谈如何做好研究生:要逼着自己去想问题,最大的浪费是聪明人不思考
  2. 李飞飞、颜宁等9位华人当选美国艺术与科学院院士,DeepMind创始人也成新晋院士!...
  3. NeurIPS 2020论文接收大排行!谷歌169篇第一、斯坦福第二、清华国内第一
  4. SAP RETAIL 如何根据分配表查到根据它创建的采购订单?
  5. SAP RETAIL MM41 创建商品主数据时候不能使用制造业系统里配置的物料组
  6. SAP PM 初级系列26 - 设备功能位置的Document
  7. 机器学习隐私研究新进展:数据增强风险被低估,新算法“降服”维数依赖
  8. 如何看待亚马逊 AI 李沐团队大批人员离职?
  9. 代码详解:最全面的卷积神经网络介绍,都在这里了
  10. 透彻理解高斯核函数背后的哲学思想与数学思想