Форум: "Прочее";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];
Внизasm в Delphi Найти похожие ветки
← →
ElectriC © (2007-09-01 13:29) [0]Посоветуйте хорошую книгу использование asm в дельфи для чайников.
← →
Anatoly Podgoretsky © (2007-09-01 13:35) [1]> ElectriC (01.09.2007 13:29:00) [0]
www.intel.com
← →
Sergey Masloff (2007-09-01 13:37) [2]Денис Христенсен, BASM Уроки для начинающих
перевод © Anatoly Podgoretsky, 2003 ;-)
файл BasmForBeginners-ru.doc ищется в любом поисковике за 2 минуты
← →
Sergey Masloff (2007-09-01 13:39) [3]Кстати на intel.com устанешь искать документацию по процессорам. Я наверное часа полтора искал хотя точно знал что ищу. Ни фига не эргономичный дизайн...
← →
Anatoly Podgoretsky © (2007-09-01 13:53) [4]> Sergey Masloff (01.09.2007 13:37:02) [2]
Это не много не то.
← →
Anatoly Podgoretsky © (2007-09-01 13:54) [5]> Sergey Masloff (01.09.2007 13:39:03) [3]
Трудновато, я сам обматюгался, но это именно то что требуется для работы.
У меня на сайте есть (в ftp части), то это явно устарело.
← →
ElectriC © (2007-09-01 14:24) [6]Спасибо за книженцию. Думаю то что надо.
← →
homm © (2007-09-01 17:29) [7]> Посоветуйте хорошую книгу использование asm в дельфи для
> чайников
Я бы посоветовл чайником не испльзовать asm в дельфи.
← →
homm © (2007-09-01 17:32) [8]> Я бы посоветовaл чайникaм не использовать asm в дельфи.
← →
Denis_ © (2007-09-01 17:43) [9]
> чайником не испльзовать asm
Да, я согласен с Вами.
← →
atruhin © (2007-09-01 17:47) [10]> Я бы посоветовл чайником не испльзовать asm в дельфи.
Самый разумный совет. Лично тестировал процедуры в библиотеках, написанные на асм
которые работали медленнее чем на Delphi.
← →
sdubaruhnul (2007-09-02 00:01) [11]Я бы посоветовал не использвать asm.
← →
ElectriC © (2007-09-02 00:10) [12]
> homm ©
Я про asm, а не Delphi
← →
Германн © (2007-09-02 01:30) [13]
> homm © (01.09.07 17:32) [8]
>
> > Я бы посоветовaл чайникaм не использовать asm в дельфи.
>
>
Не согласен. Имхо.
← →
J_f_S (2007-09-02 02:42) [14]Я бы посоветовал вообще не использовать такие вставки в высокоуровневых языках. Если хочется поизучать ассемблер - скачайте лучше отдельный FASM. Клевый, современный, быстрый ассемблер с отличными примерами.
А мешать асм код в современные ООП языки вообще вредно. Не будет выигрыша ни в читаемости кода, ни в скорости выполнения (исключения чрезвычайно редки, пишутся профессионалами в редких случаях, и то код не всегда получается быстрее кода компилятора).
← →
Германн © (2007-09-02 02:49) [15]
> J_f_S (02.09.07 02:42) [14]
>
> Я бы посоветовал вообще не использовать такие вставки в
> высокоуровневых языках. Если хочется поизучать ассемблер
> - скачайте лучше отдельный FASM. Клевый, современный, быстрый
> ассемблер с отличными примерами.
>
> А мешать асм код в современные ООП языки вообще вредно.
> Не будет выигрыша ни в читаемости кода, ни в скорости выполнения
> (исключения чрезвычайно редки, пишутся профессионалами в
> редких случаях, и то код не всегда получается быстрее кода
> компилятора).
>
Ещё раз не согласен.
← →
homm © (2007-09-02 07:43) [16]> [13] Германн © (02.09.07 01:30)
> Не согласен. Имхо.
С чем? код, написаный чайником на асемблере в большенстве случаев работает хуже, чем оригинальный на дельфи. Сам был чайником в асм (да и сейчас не особо крут).
> [12] ElectriC © (02.09.07 00:10)
> Я про asm, а не Delphi
Чего?
← →
Инс © (2007-09-02 10:12) [17]Многие ошибочно полагают, будто бы с помощью асм в Delphi можно обойти многие ограничения, накладываемые операционной системой. Им кажется, будто бы, если они будут в совершенстве владеть асм, им даже WinAPI не понадобится, они сами смогут напрямую обращаться к аппарутуре, физической памяти и пр. Уважаемый автор, у вас не этот случай? ;)
← →
JaK[Light] © (2007-09-02 11:12) [18]
> код, написаный чайником на асемблере в большенстве случаев
> работает хуже, чем оригинальный на дельфи
Но ведь никто не запрещает сперва посмотреть сгенерированный код в CPU? :)
← →
Anatoly Podgoretsky © (2007-09-02 11:13) [19]
> Я про asm, а не Delphi
А это что?
> использование asm в дельфи
Учитывая, многообразие процессоров и различия в оптимизации по них, очень трудно достигнуть нужной.
Если для СИ у Интела есть компиляторы, которые оптимизируют под процессор, то с АСМ не так, если не считать оптимизатор на уровне машинных команд.
Без этого конструция А может работать медленнее конструкции Б, хотя во второй команд и соответственно голых тактов будет больше, чем в первой.
← →
Anatoly Podgoretsky © (2007-09-02 11:15) [20]На моем сайте есть и другая статья - по оптимизации, там немного затронуты эти факторы. Даже бывает, что изменение местами двух команд или добавление пустых команд NOP может привести к резкому ускорению куска программы, не говоря уж об выравнивание.
← →
Anatoly Podgoretsky © (2007-09-02 11:25) [21]> JaK[Light] (02.09.2007 11:12:18) [18]
Посмотрел, а дальше что?
← →
Инс © (2007-09-02 11:29) [22]
> Посмотрел, а дальше что?
Зачастую компилятор генерирует очень некачественный код. Гоняет значения из памяти в регистры и обратно. Очень частно можно достаточно сильно ускорить код, просто убрав всю эту мешанину, сведением к минимуму обращения к памяти. Однажды мне пришлось так поступить - выигрыш был процентов 200-300.
← →
Инс © (2007-09-02 11:31) [23]
> [20] Anatoly Podgoretsky © (02.09.07 11:15)
То, о чем вы говорите - называется низкоуровневая оптимизация. Она безусловно может дать выигрыш, но прежде чем к ней перейти, необходимо осуществить высокоуровневую оптимизацию (пересмотреть алгоритм), которая может дать выигрыш значительно больший.
← →
Anatoly Podgoretsky © (2007-09-02 11:43) [24]Ну так давно известно, что максимальный прирост дают алгоритм, а начинающие верят, что если они перейдут на ассемблер то произойдет чудо, а как правило, в большинстве случаев, произойдет нечто другое.
← →
homm © (2007-09-02 11:48) [25]> необходимо осуществить высокоуровневую оптимизацию (пересмотреть
> алгоритм),
Для этого обязательно переписывать на asm?
← →
Anatoly Podgoretsky © (2007-09-02 11:58) [26]> homm (02.09.2007 11:48:25) [25]
Как раз это не требуется, переписывать на асм нужно в очень редких случаях, особо критичные куски, при условии, что человек владеет методикой оптимизации, в соответствии с мануалами Интела на конкретную модель процессора и общими принципами оптимизации без учета процессора, максимум класса процессоров.
Методы которые работали на 8086/80286/80386 стали мало применимы к более старшим моделям, точнее они стали приводить к обратному эффекту.
← →
JaK[Light] © (2007-09-02 12:01) [27]
> Посмотрел, а дальше что?
Ну частично Инс уже ответил, могу только добавить, что иногда компилятор в силу своей универсальности генерирует немного не те команды, поэтому зачастую приходится не только убивать бессмысленные перемещения туда и обратно, но и заменять целые блоки (естественно, с опорой на доки). Он не настолько интеллектуален, чтобы хорошо разобраться в каждой ситуации :)
> Anatoly Podgoretsky © (02.09.07 11:43) [24]
К ассемблеру стоит переходить, если уверен, что алгоритм идеальный, но нужное быстродействие еще не достигнуто. Остальное - от лукавого.
Почему-то такого автоматического комментария после asm не предусмотрено :)
← →
Инс © (2007-09-02 14:24) [28]
> Как раз это не требуется, переписывать на асм нужно в очень
> редких случаях, особо критичные куски, при условии, что
> человек владеет методикой оптимизации, в соответствии с
> мануалами Интела на конкретную модель процессора и общими
> принципами оптимизации без учета процессора, максимум класса
> процессоров.
Это верно.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.282 c