Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 字节数组的数据存储在哪里?_Flash_Actionscript 3_Apache Flex_Actionscript - Fatal编程技术网

Flash 字节数组的数据存储在哪里?

Flash 字节数组的数据存储在哪里?,flash,actionscript-3,apache-flex,actionscript,Flash,Actionscript 3,Apache Flex,Actionscript,我正在使用URLStream下载一个大文件,并在移动应用程序上本地保存。为此,我需要将下载的字节存储在ByteArray上: private function handleStreamProgress(event : ProgressEvent) : void { if ( urlStream.bytesAvailable == 0 ) return; if ( urlStream.connected ) { urlStream.readBytes(byteArray, byte

我正在使用URLStream下载一个大文件,并在移动应用程序上本地保存。为此,我需要将下载的字节存储在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 clean方法需要一些时间,反复调用它可能比根本不调用更糟糕。真正有趣的是,当运行探查器时,即使用urlStream加载一个100Mb的文件,应用程序的swf内存消耗也不会显著增加。@cassiozen如果您正在写入磁盘并清除,您只会消耗内存中给定的文件块,因此,在处理过程中,您不会看到整个100MB的内存消耗,内存占用也不会显著增加。它显然取决于流的入站大小。