我有这样一段代码:AS3循环优化
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。此代码仅在流中有足够多的字节可用时执行。
尝试使用“Vector。”而不是Array。此外,如果您控制传入流,则可以发送4字节的颜色,并使用readUnsignedInt读取它们,避免位移。 –
@VilleKrumlinde你为什么不回答这个问题? – weltraumpirat
我不确定,因为自从我做了as3开发之后,我一直在怯懦地写下评论(downvoters是无情的;-)),但现在我已经做出了答案。 –