Actionscript,提高异或性能?
Actionscript, improving xor performance?
我正在使用下面的代码来处理一些大文件。
var joinedBytes:ByteArray = new ByteArray;
joinedBytes.length = _chunkSize;
for (var i:Number = 0; i < _chunkSize; i++) {
joinedBytes.writeByte(_xorBytesBuffer[i]^_rndBytesBuffer[i]);
}
在桌面上处理 10mb 数据大约需要 2.5 秒。
这是正常表现吗?
有什么方法可以加快速度吗?
我觉得有些时候是在写字节数组。
编辑:
_xorBytesBuffer 和_rndBytesBuffer 都是字节数组。
我没有测试所有内容。我可能在下面的某个地方错了但是......
ByteArray 更快
[i]
建议您使用 Vector/Array
,使用另一个 ByteArray
作为 _xorBytesBuffer
,_rndBytesBuffer
应该会加快速度。
您还想对更大的数据进行操作,即 writeUnsignedInt()
而不是 writeByte()
另见
uint 比 Number
更快
如果你只有 10MB,你想使用 var i:uint
而不是 Number
。
另一件事是你可以用 ++i
替换 i++
虽然我没有真正测试这是否有很大影响 - 我只听说它更快。
删除额外的步骤。
你甚至可以尝试这样的事情:
for (var i:uint = 0; i < _chunkSize;) {
joinedBytes.writeByte(_xorBytesBuffer[i]^_rndBytesBuffer[i++]);
}
请告诉我们 _rndBytesBuffer[i++]
有什么不同 ;)
等等,我只是说不要使用索引,而是使用另一个 ByteArrays...好吧,如果您仍然想尝试上面的方法,请告诉我们它的性能;)
确保您的条件检查尽可能简单。
确保你有 var _chunkSize:uint
而不是
function _chunkSize(){return something;}
我正在使用下面的代码来处理一些大文件。
var joinedBytes:ByteArray = new ByteArray;
joinedBytes.length = _chunkSize;
for (var i:Number = 0; i < _chunkSize; i++) {
joinedBytes.writeByte(_xorBytesBuffer[i]^_rndBytesBuffer[i]);
}
在桌面上处理 10mb 数据大约需要 2.5 秒。
这是正常表现吗?
有什么方法可以加快速度吗?
我觉得有些时候是在写字节数组。
编辑:
_xorBytesBuffer 和_rndBytesBuffer 都是字节数组。
我没有测试所有内容。我可能在下面的某个地方错了但是......
ByteArray 更快
[i]
建议您使用 Vector/Array
,使用另一个 ByteArray
作为 _xorBytesBuffer
,_rndBytesBuffer
应该会加快速度。
您还想对更大的数据进行操作,即 writeUnsignedInt()
而不是 writeByte()
另见
uint 比 Number
更快如果你只有 10MB,你想使用 var i:uint
而不是 Number
。
另一件事是你可以用 ++i
替换 i++
虽然我没有真正测试这是否有很大影响 - 我只听说它更快。
删除额外的步骤。
你甚至可以尝试这样的事情:
for (var i:uint = 0; i < _chunkSize;) {
joinedBytes.writeByte(_xorBytesBuffer[i]^_rndBytesBuffer[i++]);
}
请告诉我们 _rndBytesBuffer[i++]
有什么不同 ;)
等等,我只是说不要使用索引,而是使用另一个 ByteArrays...好吧,如果您仍然想尝试上面的方法,请告诉我们它的性能;)
确保您的条件检查尽可能简单。
确保你有 var _chunkSize:uint
而不是
function _chunkSize(){return something;}