Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Надо, или не надо? - вот в чем вопрос!

6.9K
20 апреля 2006 года
Britney
69 / / 20.03.2006
Когда-то, в стародавние времена я изучял ассемблер. Язык мне очень понравился, но тогда практического применения я ему не нашел! А сейчас, когда стал писать более или менее серьезные проги встал вопрос об обеспечениии достойной скорости работы программы. Так вот мой вопрос заключается в том, ст0ит или не ст0ит включать ассемблерные вставки и подпрограммы в код, или компилятор сам все лучше за меня придумает?
5
20 апреля 2006 года
hardcase
4.5K / / 09.08.2005
Цитата:
Originally posted by Britney
Так вот мой вопрос заключается в том, ст0ит или не ст0ит включать ассемблерные вставки и подпрограммы в код, или компилятор сам все лучше за меня придумает?


Всё зависит от задачи, которую решаешь.
Например, если моделируешь многоразрядную арифметику (типа int256bit) - то тут наверняК нужно кодить на ассемблее для получения лучших скоростных характеристик.
Вот мой приятель реализовывал алгоритм шифрования DES в делфях целиком на ассемблерных вставках.

Насчёт же компилера - то он тот ещё профан. генерирует далеко не самый лучший код. Тут можно довольно хорошо улучшить генерируемый код используя только синтаксис паскаля: типа того, что избгать множественных вычислений одинаковых значений, по возможности обращаться к массиву в цикле не по индексу, а "перемещать" указатель inc- и dec-ами, избегать частых тригонометрических вычислений и округлений Round, передавать стринги как const параметры, по реже использовать конкатенации (особенно в циклах), по-возможности отказаться от динамических массивов и ещё куча тонкостей связанных с классами и VCL в частности.

303
21 апреля 2006 года
makbeth
1.0K / / 25.11.2004
Цитата:
Originally posted by hardcase
Всё зависит от задачи, которую решаешь.
Например, если моделируешь многоразрядную арифметику (типа int256bit) - то тут наверняК нужно кодить на ассемблее для получения лучших скоростных характеристик.
Вот мой приятель реализовывал алгоритм шифрования DES в делфях целиком на ассемблерных вставках.


В таких случаях и стоит использовать asm - т.е при вычислениях, критичных для по времени и требующих вычислительных мощьностей процессора.

Цитата:

Насчёт же компилера - то он тот ещё профан. генерирует далеко не самый лучший код.


ИМХО, вопрос спорный...

Цитата:

Тут можно довольно хорошо улучшить генерируемый код используя только синтаксис паскаля: типа того, что избгать множественных вычислений одинаковых значений, по возможности обращаться к массиву в цикле не по индексу, а "перемещать" указатель inc- и dec-ами, избегать частых тригонометрических вычислений и округлений Round, передавать стринги как const параметры, по реже использовать конкатенации (особенно в циклах), по-возможности отказаться от динамических массивов и ещё куча тонкостей связанных с классами и VCL в частности.


Дык а при чем сдесь компилятор? ;) Это типичная наша криворукость.

А вообще, думаю, не стоит слишком заигрывать с asm, к тому же не всегда это приведет к тем результатам, которые ожидались и чревато трудно выявляемыми ошибками. В конце концов для этого и придумали ЯВУ.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог