Вопрос по использованию МMX, SSE1,2,3 в Delphi через ASM

Тема в разделе "WASM.BEGINNERS", создана пользователем Anton, 1 дек 2007.

  1. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    SII
    так вот, медленная работа программы никак не связана с динамическими массивами.
     
  2. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    SII
    t00x
    В дельфи оптимизатор жжет. Обращение к элементу статического массива идет каждый раз через умножения. А вот у динамического идет увелечение счетчика.
    В результате с динамическими массивами скорость обработки возростает 1,3 раза.
     
  3. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    t00x
    Вообще-то, судя по Вашим предыдущим репликам, Вы не видели разницы в работе со статическими и динамическими массивами. И скорость работы здесь роли не играет.

    Pavia
    Его там вообще, похоже, нету. Во всяком случае, качество кода отвратное. Утешает одно: всё равно если потребуется что-то глубоко оптимизировать, я ручками сделаю это лучше любого транслятора, а если оптимизировать незачем, то на кой мне оптимизирующий компилятор? :)

    Но, если компилятор делать нормально, то обращение к статическому массиву будет ощутимо быстрей, чем к динамическому.
     
  4. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    на уровне Object Pascal кода разницы по-прежнему нет,
    прочтите постановку вопроса #9,
    Pavia доходчиво объяснил реализацию на уровне инструкций процессора
     
  5. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    t00x
    Разница есть, но небольшая: Mas[x][y] вместо Max[x,y]. Но речь-то шла про оптимизацию на асме, а там разница большая получается.

    Э... не понял, если честно :) Что за вопрос №9?