快捷搜索:  汽车  科技

苹果手机运行内存为什么这么快?苹果手机缓存小

苹果手机运行内存为什么这么快?苹果手机缓存小这是运行在 iOS 和 Android 上的不同应用程序使用的 RAM 表:然而,Java 有一个缺点。每个操作系统和处理器组合都需要一个运行环境,称为 Java 虚拟机 (JVM),它可以理解 Java 字节码并将其转换为处理器的本机代码。最初,这是通过解释完成的,这意味着读取每个字节码块,然后执行,然后读取下一个块,依此类推。随着时间的推移,人们发明了不同的技术来加速这个过程,包括缓存先前转换地块、即时编译为本机代码、提前编译等等。但是,无论这些技术有多好,仍然存在两个问题。首先,本机代码的性能优于通过 JVM 运行的代码。其次,JVM 的使用(即使使用提前编译)增加了应用程序使用的 RAM 量。RAM 大小的这种差异导致了诸如“iPhone 得到了更好的优化——它们不需要像 Android 手机那样多的 RAM”这样的说法。从表面上看,这似乎是一个合乎逻辑的陈述。但这并不是那么简单。

iPhone 的 RAM 往往比 Android 设备少?这是为什么?

Apple 与 Android RAM 管理的一点历史

早在 Android 和 iOS 的早期,智能手机没有太多 RAM,iPhone 和 Android 手机的 RAM 大小也没有太大差异。从 2008 年开始,HTC Dream 只有 192MB 的 RAM,而最初的 iPhone 则是 128MB。iPhone 3G 保持在 128MB,而 iPhone 3GS 从 2009 年起翻了一番,达到 256MB。iPhone 4 再次翻了一番,iPhone 5 (2012) 再次翻了一番。iPhone 继续配备 1GB 内存,直到 2015 年苹果发布配备 2GB 内存的 iPhone 6S。放大到 2021 年,iPhone 13 Pro 包括 6GB 内存。

苹果手机运行内存为什么这么快?苹果手机缓存小(1)

在 Android 生态系统中,三星 Galaxy S(2010 年起)配备 512MB 内存,而 S2 则为 1GB。2012 年的 S3 有 2GB 的变体,2013 年的 S4 也是如此。这就是我们看到 iPhone 和 Android 设备的 RAM 大小存在显着差异的地方。三星在 S4 中加入了 2GB,比苹果在 iPhone 6S 中加入 2GB 早了两年。快进到 2021/2022 年,我们拥有 16GB RAM 的 Android 设备,例如三星 Galaxy S22 Ultra。

iPhone 的 RAM 更少,但这是否意味着它们得到了更好的优化?

RAM 大小的这种差异导致了诸如“iPhone 得到了更好的优化——它们不需要像 Android 手机那样多的 RAM”这样的说法。从表面上看,这似乎是一个合乎逻辑的陈述。但这并不是那么简单。它与优化关系不大,而与 Android 决定使用 Java 的关系更大。

Objective-C/Swift 与 Java/Kotlin

苹果手机运行内存为什么这么快?苹果手机缓存小(2)

当开发人员为 iOS 编写应用程序时,它会直接编译为可以在 iPhone 处理器上运行的代码。这被称为本机代码,因为它不需要任何类型的解释或虚拟环境即可运行。另一方面,Android 则不同。Android 使用 Java。编译 Java 代码时,它会变成独立于处理器的中间代码(Java 字节码)。相同的 Java 字节码可以在 Arm 处理器、x86 处理器或 RISC-V 处理器上运行。Java 的口号是“一次编写,随处运行”。这对跨平台兼容性有巨大的好处。

Android 和 iOS 使用的不同编程语言需要不同数量的 RAM。

然而,Java 有一个缺点。每个操作系统和处理器组合都需要一个运行环境,称为 Java 虚拟机 (JVM),它可以理解 Java 字节码并将其转换为处理器的本机代码。最初,这是通过解释完成的,这意味着读取每个字节码块,然后执行,然后读取下一个块,依此类推。随着时间的推移,人们发明了不同的技术来加速这个过程,包括缓存先前转换地块、即时编译为本机代码、提前编译等等。但是,无论这些技术有多好,仍然存在两个问题。首先,本机代码的性能优于通过 JVM 运行的代码。其次,JVM 的使用(即使使用提前编译)增加了应用程序使用的 RAM 量。

这是运行在 iOS 和 Android 上的不同应用程序使用的 RAM 表:

苹果手机运行内存为什么这么快?苹果手机缓存小(3)

如您所见,iOS 应用程序倾向于使用更少的 RAM — 在某些情况下最多减少 70%。如果取平均值,则 RAM 将减少 40% 左右。这意味着,如果其他条件相同,iPhone 将需要少 40% 的 RAM 来存储与 Android 手机相同数量的应用程序。如果 iPhone 13 Pro 有 6GB,那么旗舰 Android 设备将需要 8GB 才能运行相同的应用程序。然而,一切都没有丢失!并非所有应用程序都使用 JVM。有适用于 Android 的本机应用程序。它们往往是游戏,因为游戏不使用 Android UI 或各种 Android 框架。Android 为游戏编写者提供了一种将其源代码直接编译为本机二进制文件的方法。在没有 JVM 的情况下直接在处理器上运行的代码。所有流行的游戏工具,如 Unity 和 Unreal,都通过编译代码以在本地运行,无需 JVM。

如果其他条件相同,iPhone 将需要少 40% 的 RAM 来存储与 Android 手机相同数量的应用程序。

这是在 iOS 和 Android 上运行的不同游戏使用的 RAM 表:

苹果手机运行内存为什么这么快?苹果手机缓存小(4)

结果与应用程序完全不同。在这里,我们可以看到在 Android 上使用更少内存的游戏(最多减少 20%)和一些使用更多的游戏。平均而言,iOS 游戏使用的 RAM 比 Android 版本少 10%。这显示了使用 JVM 和 Android UI 与编写原生游戏相比的区别。这 10% 是一个很大的数字,但是一旦事情接近尾声,我们就需要开始查看编译器版本、屏幕分辨率、纹理压缩、纹理分辨率、Open GL ES、Metal 等等。最重要的是,对于游戏玩家来说,iOS 和 Android 所需的 RAM 量是相似的。

iPhone 需要多少内存?

在考虑智能手机的理想 RAM 容量时,重要的是定义我们所说的“理想”。在 iPhone 上运行一个应用程序,即使是旧型号,也不是问题。问题是,有多少应用程序或游戏可以同时保留在内存中?换句话说,您可以在无需重新加载的情况下主动切换多少个应用程序?您在一天中多次使用多少应用程序或游戏?如果您发送一封电子邮件,玩一个快速游戏,在社交媒体上发布一些内容,然后返回您的电子邮件应用程序发现它需要重新加载,这将是一个非常糟糕的用户体验。这样的限制会很快变得令人沮丧。

如果使用压缩没有释放足够的内存,那么 iOS 将从 RAM 中丢弃应用程序以回收其内存

如果在您启动应用程序时没有足够的可用内存供它使用,那么 iOS 会执行以下两种操作之一。首先,它会尝试压缩一些暂时未使用的内存块(称为页面)。iOS 获取其中一些页面,压缩它们(使用称为 WKdm 的特殊压缩算法),然后将它们写回内存。如果您有 128K 的合格页面,并且假设压缩率为 50%,那么 128K 可以压缩到 64K,从而释放 64K。

其次,如果没有使用压缩释放足够的内存,那么 iOS 将从 RAM 中丢弃应用程序以回收其内存。这被称为jetsam事件。如果您切换回已放弃的应用程序,则需要重新加载。

这是一个时序图,显示了在具有 3GB RAM 的 iPhone SE(2020)上启动和使用不同的应用程序时使用的 RAM 量和压缩 RAM 的量:

苹果手机运行内存为什么这么快?苹果手机缓存小(5)

一开始,iOS 仅压缩了大约 200MB 的 RAM,并且正在使用超过 2GB 的 RAM。然后,随着不同应用程序的启动,使用的 RAM 量会增加,压缩的 RAM 量也会增加。当 Booking.com 应用程序启动时,您可以看到第一个显着峰值。启动 Google Photos 时还有另一个问题,现在 iOS 使用了超过 1GB 的压缩 RAM。到我开始 Tasty 的时候,内存中有十几个应用程序,没有一个被抛弃。为了给系统施加更大的内存压力,我打开了 Safari 并开始浏览不同的网站,每个网站都在自己的选项卡中。此时,Safari 正在使用 850MB 的 RAM,iOS 被迫从内存中抛弃 Keynote。

正如我们之前所讨论的,游戏比应用程序使用更多的内存。同一部 iPhone SE 可以同时在内存中存储大约四款游戏(Subway Surfers、1945 Airforce、Candy Crush、Brawl Stars)。然而,在第五款游戏《狂野飙车 9》开始时,iOS 放弃了两款游戏(地铁冲浪者和 1945 年空军)为其腾出空间。

当内存更多时,应用程序和游戏被抛弃的频率就会降低。这是 iPhone 13 Pro(6GB RAM)的图表,显示了它如何处理内存中的多个游戏:

苹果手机运行内存为什么这么快?苹果手机缓存小(6)

与 iPhone SE 相比,iPhone 13 Pro 可以同时在内存中存储更多游戏。它有双倍的 RAM,所以这是意料之中的。后者的游戏非常大,其中一些占用了超过 1GB 的 RAM。当 Genshin Impact 启动时,iOS 无法再压缩内存页面(此时已经压缩了超过 2GB 的内存),因此它被迫终止了 Subway Surfers、1945 Airforce 和 Brawl Stars,转而支持新游戏.

3GB iPhone 适合基本使用,但您需要更多用于游戏。

最后一个要考虑的方面是面向未来。Genshin Impact 是一款大型游戏,在 iOS 上占用超过 1.2GB 的 RAM。2020年发售,谁知道未来几年会出现什么游戏呢!iPhone 游戏玩家应该考虑某种缓冲,并购买内存尽可能大的设备。

哪个更好:iOS 还是 Android?

苹果手机运行内存为什么这么快?苹果手机缓存小(7)

对于那些用工具类应用程序和社交媒体(没有太多浏览)的人来说,3GB 就足够了。如果您想购买新 iPhone,而不是 iPhone SE,那么所有 4GB 型号都足够了。如果您进行大量浏览或多媒体操作,那么 4GB 就可以了,但您应该考虑使用 6GB 的型号。

如果您是重度游戏玩家,并且希望设备能够适应未来的发展,您应该强烈考虑配备 6GB RAM 的 iPhone。更多 RAM 意味着更多游戏可以同时保留在内存中。如您所见,12GB 对于铁杆 Android 游戏玩家来说绰绰有余。从 Subway Surfers 到 Genshin Impact 的所有游戏都留在了记忆中。S21 Ultra 直到 Shadowgun Legends 启动后才开始使用所有板载内存,然后使用的 zRAM 量也相应增加。即使加载并播放了最终游戏,也不会从内存中删除任何其他游戏。事实上,要强制 Android 删除游戏,我需要启动 Chrome 并打开 12 个标签。直到那时,Android 才杀死了 Minecraft!如果您只使用少数应用程序并且不进行太多网页浏览或游戏,那么具有 4GB RAM 的 Android 设备将是可用的。购买主流智能手机时的目标是 6GB 内存,因为这将允许工具和社交媒体应用程序,以及适度数量的浏览标签,以及一些游戏。

我是WhenTech 您的选择是什么呢?

猜您喜欢: