是否有官方参考说明电池寿命是垃圾收集器未包含在 iOS 中的原因之一?

Posted

技术标签:

【中文标题】是否有官方参考说明电池寿命是垃圾收集器未包含在 iOS 中的原因之一?【英文标题】:Is there an official reference stating that battery life is one of the reasons why a Garbage Collector was not included inside iOS? 【发布时间】:2010-09-10 01:54:32 【问题描述】:

在the following SO question 中,提到车库收集器未包含在ios 中以节省电池电量。

是否有来自 Apple 的官方参考说明电池寿命是垃圾收集器未包含在 iOS 中的原因之一?

我一直在谷歌上寻找它,但找不到任何相关的东西。

【问题讨论】:

【参考方案1】:

...说明电池寿命是垃圾收集器未包含在 iOS 中的原因之一?

我认为这要么是良好的公关,要么是激进的***粉丝。良好的 GC 几乎不会增加开销,尤其是任何人都不必担心的开销。问题是苹果没有一个好的垃圾收集器。

Objective-C 的垃圾收集器是保守的,不进行压缩,这意味着应用程序随着时间的推移而泄漏内存,如果您的手机上有一个长时间运行的应用程序,它会最终耗尽所有可用内存并崩溃。实际上,这就是 Apple 建议不要将其用于长时间运行的任务的原因,即使在 Mac OS X 上也是如此。

【讨论】:

你说得对。 ObjC 的垃圾收集器很难理解并且存在一些问题,尤其是在混合代码(ObjC 和 C)中。我实际上在我的 OSX 应用程序上禁用了它,因为它导致了一些非常奇怪(但很容易重现)的问题。【参考方案2】:

在所有有限资源设备上的不可预测的性能肯定也存在一个主要问题。英特尔聘请了一位同事和我的同事来推出 Pentim 3,以制作一些重要的 UI 东西,展示这款处理器的强大功能,以便每个人都可以升级。

出于某种原因,我们认为 Excite 搜索引擎的基于 Java 的 3D 界面是最终的解决方案。有卫星的行星将代表结果页面和个人搜索结果。太空时代的东西。这显然是在互联网大爆炸之前,当时人们有太多的钱和对 3D 网络世界的宏伟愿景。

好吧,垃圾人总是在错误的时间频繁出现,所以我们做了我们当时必须做的事情,要求大量内存并编写我们自己的分配内容。客户无法容忍跳动的 GFX。

这成功了,尽管今天看起来很脏。

我坚持认为,Apple 的决定主要是因为可用内存少,而且希望应用和游戏的速度达到最佳,甚至是速度。他们不是那种喜欢“啊,现在又落后了”的人。

我建议您参考最近在 4.x 周围的喧嚣,在某些设备上运行缓慢。新的更新推出了一些功能来换取性能。

【讨论】:

以上是关于是否有官方参考说明电池寿命是垃圾收集器未包含在 iOS 中的原因之一?的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 中计算电池寿命

保存电池寿命的最佳背景颜色是什么?

强制垃圾收集对活动对象以及长寿命对象有什么影响?

从智能垃圾桶模型引发的思考?

JVM学习二:垃圾收集(Garbage Collection,GC)机制

JS制造的垃圾桶