Масксимально быстрая загрузка из Zip
Привет. Имеется старлинг приложение, которое загружает упакованные в zip (без сжатия) ресурсы через ZipFile (от nochump) и из него получает битмапы через loadBytes для последующего конвертирования в текстуры.
Код AS3:
Если же в цикле всю экстракцию инициировать - занимает 3 секунды, но вешает намертво приложение на это время (анимация в прелоадере фризится). Основное время занимает конечно zipFile.getInput(zipFile.getEntry('имя_файла')), loadBytes и последующее создание битмапов проходит значительно быстрее. С архивами в as3 до этого работать не приходилось, но хочется и быстро, и без фризов :) Возможно, посоветуете какие библиотеки для работы с zip, более производительные и удобные? |
Вряд-ли время распаковки получится сильно сократить.
Попробуйте искать библиотеки, которые написаны на c/c++ и портированы на флеш через alchemy. 3 секунды - время небольшое. Можно попробовать вынести распаковку в фоновый воркер, тогда фризов интерфейса не будет. |
Так вот и хотелось узнать результаты сравнительных бэнчмарков разных либ :)
Архив то у меня без сжатия, почему так долго то. Возможно стоит смотреть в сторону хранения/извлечения пнгшек из sfw? |
Воркеры это вообще лажа ужасная. Как я понял, адоби на них забили частично, и вряд ли удастся комфортно разрабатывать что-то с воркерами.
Недавно сталкивался с такой же проблемой, и решил ее без воркеров. Распаковка стала чуть дольше, зато приложение не вешает совершенно, и все анимации будут работать. В общем, суть в том, чтобы распаковку делать не в цикле, и покадрово и или по таймеру В общем, вот такой класс набросал Код AS3:
Распаковывает он все это в байт массивы и помещает в массив. Естественно, в таком виде их вряд ли используешь, поэтому тут уж дальше кому что надо. У меня есть специальный класс обертка, в котором массив превращается в картинку через Loader.loadBytes() так же в этом классе хранится название ввода из архива, чтобы как-то это потом идентифицировать Работает все так: Код AS3:
|
Спасибо, как раз начал писать распаковку пачками.
Все сразу - быстро, но вешает приложение, по одному - нереально долго. Пачки наверное в самый раз будут :) Добавлено через 36 минут Мде... Проблем вовсе не в коде или тормозной либе :D Тотал перепаковывает архив при изменении его содержимого, добавляет 2% сжатия :wacko: Перепаковал заново без сжатия винраром - время распаковки 70 мс в цикле и 380 пачками по 10. Кстати, с "обычным" сжатием то же самое извлекается почти 9000 мс... |
Часовой пояс GMT +4, время: 05:07. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.