2009-06-24 89 views
2

我们都知道Web浏览器(如Firefox)如何填满内存消耗,因为我们持续执行容易产生内存泄漏的JavaScript代码(来自网站)。Adob​​e AIR,内存泄漏

我在开发一个桌面应用程序的辩论,并给我与Javascript/Css/HTML的经验,我想我会给AIR一个尝试,这样我就不必使用Java(例如)并处理学习它所有的GUI swing东西。

问题是我担心AIR中的内存泄漏,因为AIR只是一个带有API层的Web浏览器,可与操作系统交互。

是否有可能担心AIR中的内存泄漏?我应该怎么做呢?

+0

担心呢?是。做什么?不。 – 2009-06-24 23:31:41

+0

添加了问题:) – 2009-06-24 23:37:16

回答

9

我的名字是Rob Christensen,我是Adobe AIR的产品经理。首先,让我说,构建桌面应用程序非常简单,无论基础技术如何,它都会消耗大量内存和/或不释放内存。

在AIR的下一个版本中,我们正在考虑为AIR运行时提供一些附加功能,以便更容易地识别基于JavaScript的应用程序的内存泄漏。正在构建基于Flash或Flex的应用程序的开发人员可以利用Flex Builder中包含的内存分析器进行跟踪。我们也希望为JavaScript开发者做类似的事情。

以我的经验与开发人员交谈时,内存中的对象永远不会被清理时,内存泄漏通常会发生。例如,想象一个Twitter客户端,该客户端根据搜索关键字列出来自用户的推文。加班,更多的结果显示和名单变得更长。如果对可见的最大数量的Tweets没有限制,内存将随着时间的推移而上升。相反,应用程序应该对出现在该列表中的项目数量施加合理的限制。

有一些会谈描述了有关处理AIR中内存的最佳实践。虽然本文中的示例大多是用ActionScript编写的,但同样的概念也适用于JavaScript。

性能调优AIR应用程序 http://www.adobe.com/devnet/air/articles/air_performance.html

如果在运行时内存泄漏,我们以最快的速度,我们可以跳上这些。我们鼓励开发人员使用以下反馈表单(www.adobe.com/go/wish)将这些问题发回给我们的团队,以了解这些问题。

如果您使用的是Ajax框架,您可能需要考虑是否存在针对该特定框架的内存泄漏的已知问题。

因此,总结一下,是的,在构建桌面应用程序时(无论是使用AIR还是C++),您总是应该担心内存。在您开发应用程序时,您应该监视应用程序的内存使用情况,以便您可以尽早确定任何问题。一种方法是运行长寿测试 - 保持应用程序在夜间开放以查看内存是否正在爬行。

一般来说,浏览器可用的工具也非常有限。我预计浏览器供应商也会开始在其浏览器中提供更多的钩子以识别内存使用情况,这将会很快发生变化。希望这可以帮助。

谢谢!

-Rob

产品经理,Adobe AIR的

1

当然。我已经看到Linux上的AIR应用随着时间的推移吞下了千兆字节的内存。这对我来说是一个真正的阻挡者,并阻止我使用它们。

也就是说,其他平台上的其他人没有问题。最终,您需要决定大部分市场将使用什么,以及AIR(或其他)中的任何问题将如何影响他们。

如果没有那么重要(但仍然是问题)提交错误报告并希望Adobe修复这些问题。