Flash播放器可以使用的内存量是否有限制?

9

Flash播放器使用的内存量有限制吗?如果你有一个SWF文件,在一段时间内从服务器获取了大量的数据,那么越来越多的数据将被保留在内存中。这方面是否有限制呢?

3个回答

6

在任何运行在桌面PC上的Flash版本中都不会出现这种情况。只要您的应用程序继续使用更多内存,桌面Flash就会继续从操作系统请求内存,直到操作系统耗尽内存或发生崩溃。当然,作为开发人员,您应该适当限制内存使用,但Flash不会强制您这样做。

在Flash Lite(专为手机设计的移动版本)中,主机应用程序对内存使用施加预配置限制,但这可能与您无关。 :)


桌面Flash是什么意思?(独立的?)我更想知道浏览器是否会给Flash Player带来限制?也许我会在旧电脑上尝试我们的商业Flex应用程序... - Lieven Cardoen
抱歉,我会澄清一下我的答案,关于我所说的桌面Flash是什么意思。这里的问题是你想要强制限制,还是担心你会超过限制?或者只是想检查是否有任何限制? - fenomas
超限是个问题,fenomas。我想知道Flash播放器可以使用的内存量是否有限制。如果有限制,那么这个限制是由Flash播放器、浏览器、操作系统还是仅取决于PC内存量设置的呢? - Lieven Cardoen
答案就像我写的那样,没有限制。除非你在使用手机,否则Flash将会不断地使用更多的内存,直到它遇到操作系统可能施加的任何限制(即,它对所有应用程序施加的相同限制)。 - fenomas

5

使用以下代码检查内存使用情况:

trace("MEMORY USAGE: " + (System.totalMemory/1048576) + "MB");

同时要注意内存泄漏!


Idd,将编写一些分析测试来查看内存增长的速度。谢谢。 - Lieven Cardoen

2
艾恩关于检查使用的totalMemory的答案是正确的。
您可以使用分页系统。虽然越来越多的数据从服务器加载,但我认为并非所有数据都在所有时候都被使用。您可以从服务器获取数据,并逐渐保存在客户端计算机中的SharedObject(但要注意silesize限制),并且您将跟踪本地可用的数据(例如从索引0到900的数据)。如果用户想要查看200到300之间的数据,则获取存储的数据(如果已经存储),如果没有请求数据并通知用户数据正在途中。
这里有一些与totalMemory和Garbage Collector相关的有用链接:

但是考虑到服务器上有很多数据,可能更适合的是这个问题: "在Web场景下,Flash Player的安全内存限制是多少,AS 3.0位操作效果如何?"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接