Отлично! Как бы оно ни работало внутри, лишь бы работало![]()
Отлично! Как бы оно ни работало внутри, лишь бы работало![]()
zxart.ee - архив программ, графики и музыки ZX Spectrum.
Билд 1316:
+ поддерка RAR. Пока только версии 2 и не-solid архивы (thx 2 Alco)
+ опциональная зависимость линуксовых билдов от asound & SDL (сами билды пока не выкладываю до major релиза)
* более плавный прогресс анализа больших файлов
* фиксы в детекте AY (иногда даже падало).
Скачать версию для win32
Последний раз редактировалось Vitamin; 14.09.2011 в 07:18.
Билд 1333:
* ускорение распаковки RAR v2 на 30%
* поддержка solid RAR v2 архивов
* zxtune-qt: пофикшено падение при отмене поиска файлов
* zxtune-qt: пофикшена работа с локализованными путями (http://code.google.com/p/zxtune/issues/detail?id=25)
Скачать билд для win32
Скачать билд для слабых машин с win32
Скачать билд для win64
Небольшое исследование по поводу распаковки RAR.
Когда собирался поддержать этот формат, скачал много разных исходников, надеясь найти готовую либу (по типу zlib). Все что находилось было неподходящим по интерфейсу (unrarlib, libclamav_unrarlib). Разбирательство с оригинальным депакером было отложено ввиду его (депакера) большого размера. Тут товарищ Alco подкинул мне сорцы утилиты sunrar, написанной одним товарищем по мотивам оригинального депакера. Несмотря на брутальный код на голом С (оригинальный депакер написан на С++), небольшой объем исходника позволил разобраться в алгоритме и перенести его себе, адаптировав под требуемый интерфейс. Параллельно велась работа по уничтожению *****кода и прочих хардкорных идиотизмов "для скорости". Профилирование выявило в моем коде одно слабое место, которое, будучи замененным, дало прирост в скорости распаковки.
Вот некоторые результаты:
Примечания:Код:unrar: 22Mb: 4 801 204 b/s 100% 40Mb: 5 560 894 b/s 100% unrar64: 22Mb: 71 198 729 b/s 1483% (100%) 40Mb: 72 950 758 b/s 1311% (100%) sunrar: 22Mb: 5 812 448 b/s 121% 40Mb: 6 487 380 b/s 117% sunrar64: 22Mb: 5 955 331 b/s 124% (8%) 40Mb: 6 808 164 b/s 122% (9%) zxtune: 22Mb: 6 710 018 b/s 140% 40Mb: 7 490 588 b/s 134% zxtune_mingw: 22Mb: 7 362 944 b/s 153% 40Mb: 8 410 172 b/s 151% zxtune64: 22Mb: 72 360 279 b/s 1507% (102%) 40Mb: 56 093 512 b/s 1008% (77%)
- измерения проводились на Windows 7 Professional 64bit. Intel Core2 Quad@2.5GHz
- скорость представляет собой усредненное значение по результатам трех запусков
- алгоритм измерения скорости не учитывает время аллокации памяти и одинаков для всех приложений
- sunrar и zxtune распаковывают из памяти в память, в то время как unrar, скорее всего, читает по частям с диска (не уточнял) и приведен здесь для сравнения
- все подопытные были собраны одинаковыми компиляторами (кроме zxtune_mingw) с одинаковыми опциями, настроенными на производительность.
Выводы:
- *****код (sunrar) медленый и абсолютно не масштабируемый, хотя там куча приседаний на тему скорости
- mingw ощутимо быстрее msvc
- оптимизированная под небольшой словарь распаковка (sunrar, zxtune) выигрывает на небольших, но проигрывает на больших файлах
- 64-битные приложения работают гораздо быстрее (даже с учетом замедления работы 32-битных приложений в 64-битном окружении)
Последний раз редактировалось Vitamin; 20.09.2011 в 12:45.
2003. 2005 была еще медленнее. Надо будет еще попробовать, чтобы иметь разнообразие версий рантайма, а то народ жалуется на отсутствующий 7.1
---------- Post added at 15:42 ---------- Previous post was at 14:40 ----------
Переезд на vc80 отменяется. Результаты сканирования 734Мб файла (+- 10 секунд):
vc71_x86: 535 секунд
vc80_x86: 688 секунд
mingw_x86: 543 секунды
vc80_x86_64: 350 секунд
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
В этой программе есть какие-то настройки? Буфер, сэмпл рэйт, сглаживание?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)