Сколько стоит вызов процедуры?

Тема в разделе "WASM.A&O", создана пользователем Onix-Studio, 9 ноя 2006.

  1. Onix-Studio

    Onix-Studio New Member

    Публикаций:
    0
    Регистрация:
    23 окт 2006
    Сообщения:
    22
    Подскажите пожалуйста, в коде процедуры часто используется вызов функции

    function BitScanBackward(const aBoard:integer): Integer;near;
    asm
    bsr eax, dword ptr aBoard
    end;

    Примерно 5 млн раз в сек. Стоит ли переписывать процедуру на ассемблере или inline-код?
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    В делфи ни макросов, ни inline-функций. Выбор не богатый у тебя.
     
  3. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    Onix-Studio
    Если ты по инлайном подразумеваешь {$I filename} - то нестоит (вернее не выйдет даже). Лучше по месту писать asm вставки.
     
  4. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    Хороший компилятор должен сам решать про такие вещи. А если посмотреть в отладчике готовую (RELEASE) программу? Может такие функции уже вставлены inline-ом?
     
  5. halyavin

    halyavin New Member

    Публикаций:
    0
    Регистрация:
    13 май 2005
    Сообщения:
    252
    Адрес:
    Russia
    в Free Pascal макросы есть, но не уверен, что их область действия распространяется на ассемблерные вставки.
     
  6. Onix-Studio

    Onix-Studio New Member

    Публикаций:
    0
    Регистрация:
    23 окт 2006
    Сообщения:
    22
    Спасибо за ответы!

    Работаю в Delphi. Я имею в виду, конечно, ассемблерные вставки. Смотрел при пошаговой отладке код на ассемблере- компилятор не преобразует, делает вызов процедуры.
     
  7. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    Onix-Studio
    в дебуге обычно никакой оптимизации нет.
     
  8. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    censored
    есть
     
  9. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    censored
    Как и везде: зависит от настроек.
     
  10. Bohdan200

    Bohdan200 New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2005
    Сообщения:
    134
    Адрес:
    Lviv
    AFAIK в Дельфе есть inline
     
  11. hamper

    hamper Member

    Публикаций:
    0
    Регистрация:
    21 ноя 2005
    Сообщения:
    37
    Адрес:
    Russia
    В Delphi есть inline, но работает только начиная с Delphi2005.
    Например, в справке к D7 честно сказано
     
  12. Bohdan200

    Bohdan200 New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2005
    Сообщения:
    134
    Адрес:
    Lviv
    А, сори, часно говоря я только в BDS2005 оное и юзал ;)
    Там инлайн работает, только есть масса ограничений на его использование, в особенности нельзя юзать асм-вставки в инлайн функциях. :'(