Oculus简述64位Quest App的优势,相比32位可大大缓解内存压力

VR/AR
2019
12/24
20:55
映维网
分享
评论

来源:映维网 作者 广州客

现在Oculus Quest APK必须兼容ARM64,而Oculus开发者关系工程师Gabor Szauer日前撰文概述了64位之于32位的优势。下面是映维网的具体整理:

这篇博文探讨了切换到64位版本时的内存相关优势。尽管64位无法帮助你获得更多的物理内存,但改为64位有助于缓解内存压力,并使得应用程序的运行更加稳定。下面我们通过Android物理内存和虚拟内存之间的关系来解释原因。

Android操作系统为每个应用程序提供自己的内存视图,这就是所谓的虚拟内存。内存的虚拟视图与最大可寻址空间一样大。对于32位应用,这恰好是4GiB,物理内存量不会改变这一事实。

对于Quest,内存不分页到磁盘。这意味着可用的物理内存正用于备份当前运行应用的所有虚拟内存。所述物理内存恒定不变,不会因为切换到64位版本而有所不同。改变的是虚拟内存地址空间的大小。

接下来我们来谈谈共享代码。Android加载共享库一次,然后将它们链接到使用共享库的任何应用程序的虚拟地址空间中。例如,Quest视觉系统驻留在内存中一次,但会映射到使用所述视觉系统的每个应用程序的虚拟地址空间中。

示例场景

下面我们来看一个示例场景。假设我们有1GB的共享库代码映射到应用程序的虚拟地址空间中。这时,我们需要考虑三个重要事项。首先,我们假设有2.5GiB的物理内存可用;其次,应用程序具有4GiB虚拟地址空间,但映射到虚拟地址空间的共享代码已经用完了其中的1GiB;最后,虚拟地址空间视图与可用物理内存之间存在关系。这一示例开始的状态是3GiB可用虚拟内存视图,其中2.5GiB内存用于物理备份。

一个明显的问题是,应用程序认为存在3GiB的可用内存,但实际只有2.5GiB的可用物理内存。如果应用程序尝试分配超过2.5GiB的内存,届时将因为物理内存不足而崩溃。

假设应用程序最多分配2.5GiB,这时不会耗尽物理内存。如果应用程序可以线性分配与物理可用内存一样多的内存,这没有问题。但如果应用程序尝试大量分配(并且正在主动释放),则虚拟地址空间将变得碎片化。大多数应用程序会由于内存压力而崩溃,这是因为虚拟地址空间碎片化,而非因为缺少物理内存。

例如,假设有500MiB的虚拟地址范围可用,但分成100个不连续块(每块50MiB)。如果应用程序尝试分配75MiB,即便存在足够的物理内存来支持所述分配,并且虚拟地址空间具有500MiB的可用总内存,应用同样会崩溃。

对于64位版本,虚拟地址空间为18.4EB。这(几乎)消除了虚拟地址空间中的内存压力(内存碎片)。它简化了我们考虑内存的方式,因为最大的考量是用于支持18.4 EB虚拟地址空间的物理内存量。对于变成64位版本,这是一个非常重要的因素,因为你不再遇到虚拟地址空间碎片所带来的内存压力。

当然,上面只是简化的示例解释。碎片的数量不仅取决于应用程序的分配,而且涉及Android维护的各种堆。另一个问题是何时物理内存必须备份虚拟分配。但是,上面这个示例概述了64位版本在内存方面的优势(即使可用物理内存没有增加)。

若存在疑问,请在下方评论栏留下你的问题。

原文链接:https://yivian.com/news/70219.html

THE END
广告、内容合作请点击这里 寻求合作
VR
免责声明:本文系转载,版权归原作者所有;旨在传递信息,不代表砍柴网的观点和立场。

相关热点

最近关于三星折叠屏手机的消息出现了,不过这款手机折叠方式和摩托罗拉Raza特别相似,尽管三星Galaxy Fold在早期为大家带来了不好的印象,但是它还是发布了Fold,而且在今天三星W20折叠手机也正式开售。
VR
得知了一种新物种,据说是一种可怕的新生物“职场奋斗逼”,工作中以跟老板步调保持步调一致为荣,仰仗着自己耐力好,不怕猝死,拼命加班,而且是为了讨好老板“996”理论的坚决拥护者,这种人就是典型的...
VR
时间过得飞快,马上来到了惯例的年终总结时间,随着行业发展,越来越多人对VR/AR技术本身不再陌生。但是,大环境、技术成熟度等因素影响着行业
VR
今天笔者在某个数码科技微信群里聊天,竟有人发了一张曾经火遍大街小巷的手机品牌的宣传广告。现在说起它的广告语,可能还会有人记起,“朵唯女性手机”。
VR
Facebook人工智能研究院首席AI科学家杨立昆(Yann LeCun)认为,增强现实眼镜是机器学习探索者的理想挑战,并且是一种“杀手级应用”,因为它们涉及众多尚未解决的问题。他日前参加了机器学习研究大会Neur...
VR

相关推荐

1
3