· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› MASM vs. VC++ 2003

Посл.отвђт Сообщенiе


Дата: Ноя 2, 2004 15:29:23

Делаю dll видео кодака на основе преобразования Хаара ясно скорость компрессии декомпрессии здесь самый критический момент. Для теста берем color картинку 768*1024.
VC++ Studio 2003 со всеми включенными флагами оптимизации и т.д его сгенерированный код выдает 180ms на сжатие картинки (Хаара преобразование простое без плавающих чисел только деление на два сложение да умножение ни каких сложных инструкций). Делаю код компрессии на asm в MASM v.7, все функции делаю inline и т.д., (dll размера 3Kb по сравнению с 180kb у VC++:-))... ..Но неужто VC++ компилятор делает настолько качественный код, что dll на asm дала 165ms на компрессию, или VC++ оптимизируется както для dll написанных на нем же (тест dll проходил из VC++)?
(код на asme я сделал по подобию алгоритма на С, т.е. алгоритмы одни и теже только разные их реализации и компиляторы)


Дата: Ноя 2, 2004 15:49:30

9ine
„код на asme я сделал по подобию алгоритма на С“
Если просто переводить конструкции C на ассемблер, то естественно что существенного выигрыша не будет.

А вообще без кода сложно что либо сказать, может там и деление не нужно ...


Дата: Ноя 2, 2004 21:20:50

попробуй скомпилить то же самое со свежим интеловским компилятором с разными настройками.. будешь удивлен :)


Дата: Ноя 3, 2004 12:45:40

Хммм. Я могу сказать что на VC++ 2003 генерил очень близкий к оптимальному код... Если на асме длл - 3кб то я бы и на VC 3кб сделал бы... Например простенький FM-MIDI синтезатор с GUI, абоутом и т.д. у мя занял 7кб на VC++ 2003...
Единственное что могу сказать, что 180kb у VC++ - это непростительно много :)) - точно можно сделать меньше, да и скорость ассемблера догнать тоже можно...


Дата: Ноя 6, 2004 09:05:50

to semen.
Как сократить VC++ 2003 код dll до меньше 10K, сам чистый код одна математика по размеру не больше нескольких Kb, остальное VC раздувает добавляя кучу функций из kernel32.dll, user32.dll, gdi32.dll, advapi32.dll и т.д


Дата: Ноя 6, 2004 14:01:12 · Поправил: semen

9ine
Хы - а ты не юзай дефолтный crt. Если хочешь - могу свой minicrt выслать - его и юзаю - тока там багов наверно дофига...


Дата: Ноя 8, 2004 16:06:25

9ine, а ты отключил отключил отладочную инфу из проекта? :) Чую, что забыл ;)


Дата: Ноя 8, 2004 16:11:27

Caesarus
Да я чую, что много чего еще забыл :)


Дата: Ноя 8, 2004 17:20:06

:-) вообше конфигурация Realease mfc в статик либрари, хотя код mfc я в ней не использую но VC++ делает dll без dllentry, если можно убрать оттуда mfc совсем?


Дата: Ноя 18, 2004 00:36:14

9ine
Если хочешь - кинь сюда проектик - сделаю из него маленький...


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.100