оптимизация цикла as3 - PullRequest
       2

оптимизация цикла as3

1 голос
/ 19 ноября 2011

У меня есть этот кусок кода:

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-80мс. Можно ли это как-то оптимизировать? inputStream (IDataInput) - это соединение с сокетом, и оно не тратит время на ожидание ввода-вывода. Этот код выполняется только тогда, когда в потоке доступно достаточное количество байтов.

1 Ответ

2 голосов
/ 19 ноября 2011

Скопировано из моего комментария: попробуйте использовать «Вектор». вместо массива. Также, если вы управляете входящим потоком, вы можете отправлять 4-байтовые цвета и читать их, используя readUnsignedInt, избегая смещения битов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...