MASM vs. VC++ 2003

Тема в разделе "WASM.WIN32", создана пользователем 9ine, 2 ноя 2004.

  1. 9ine

    9ine New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    24
    Адрес:
    Russia
    Делаю 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. Black_mirror

    Black_mirror Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2002
    Сообщения:
    1.035
    9ine



    Если просто переводить конструкции C на ассемблер, то естественно что существенного выигрыша не будет.



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

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    попробуй скомпилить то же самое со свежим интеловским компилятором с разными настройками.. будешь удивлен :)
     
  4. semen

    semen New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2004
    Сообщения:
    334
    Адрес:
    Russia
    Хммм. Я могу сказать что на VC++ 2003 генерил очень близкий к оптимальному код... Если на асме длл - 3кб то я бы и на VC 3кб сделал бы... Например простенький FM-MIDI синтезатор с GUI, абоутом и т.д. у мя занял 7кб на VC++ 2003...

    Единственное что могу сказать, что 180kb у VC++ - это непростительно много :)) - точно можно сделать меньше, да и скорость ассемблера догнать тоже можно...
     
  5. 9ine

    9ine New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    24
    Адрес:
    Russia
    to semen.

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

    semen New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2004
    Сообщения:
    334
    Адрес:
    Russia
    9ine

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

    Caesarus New Member

    Публикаций:
    0
    Регистрация:
    8 ноя 2004
    Сообщения:
    16
    9ine, а ты отключил отключил отладочную инфу из проекта? :) Чую, что забыл ;)
     
  8. semen

    semen New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2004
    Сообщения:
    334
    Адрес:
    Russia
    Caesarus

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

    9ine New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    24
    Адрес:
    Russia
    :) вообше конфигурация Realease mfc в статик либрари, хотя код mfc я в ней не использую но VC++ делает dll без dllentry, если можно убрать оттуда mfc совсем?
     
  10. semen

    semen New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2004
    Сообщения:
    334
    Адрес:
    Russia
    9ine

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