我有這樣一段代碼: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是無情的;-)),但現在我已經做出了答案。 –