Oculus简述64位Quest App的优势,相比32位可大大缓解内存压力
来历:映维网 作者 广州客 此刻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 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |