0
我正在使用URLStream下载一个大文件并在本地保存在移动应用程序中。要做到这一点,我需要将下载的字节存储上的ByteArray:ByteArray的数据存储在哪里?
private function handleStreamProgress(event : ProgressEvent) : void {
if (urlStream.bytesAvailable == 0) return;
if (urlStream.connected) {
urlStream.readBytes(byteArray, byteArray.length);
fileStream.writeBytes(byteArray, bytesOffset);
bytesOffset = byteArray.length;
}
}
从存储在存储下载的文件这些字节? (虽然...探查器不显示任何过多的内存消耗)
我应该在每个字节序列存储后清理byteArray吗?
在每个调度的进度事件我采取最近加载的字节和写入磁盘,所以我可以清理后的ByteArray。这样做的问题是,byteArray clean方法需要一些时间,并且一遍又一遍地调用可能比根本不调用更糟糕。 真正有趣的是,在运行探查器时,即使使用urlStream加载100Mb文件,应用程序也不会显示swf内存消耗的显着增加。 – cassiozen
@cassiozen如果您正在写入磁盘并进行清除,那么您只会在内存中占用文件的一个给定块,所以不会期望您在处理程序期间会看到完整的100MB消耗,也不应该内存占用量显着增加。这显然取决于流的入站大小。 –