我有这段代码:
palette = new Array(paletteSize);
for (var i:int=0;i<paletteSize;i++) {
palette[i] = 0xFF000000
| (inputStream.readUnsignedByte() << 16)
| (inputStream.readUnsignedByte() << 8)
| (inputStream.readUnsignedByte());
}
此代码执行约300次,每次paletteSize从1-255变化。因此,整体而言,此代码大约需要60-80ms。这可以通过某种方式进行优化吗? inputStream(IDataInput)是一个套接字连接,它不会花费任何时间等待I / O.只有在流中有足够数量的字节时才会执行此代码。
答案 0 :(得分:2)
从我的评论中复制:尝试使用“矢量”。而不是数组。此外,如果您控制传入流,您可以发送4字节颜色并使用readUnsignedInt读取它们,避免位移。