Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Относительно эффективности встроенного ассемблера   Найти похожие ветки 

 
Deimos   (2003-10-29 20:39) [0]

Возник вопрос, Что эффективне? использовать встроенный ассемблер внутри KOL-овских функций или написать процедуру целиком на Ассемблере и вызывать её,
Но тут возникает другой вопрос, Умеет ли дельфи переводить свой код напямую в Ассемблер??


 
mdw ©   (2003-10-29 21:49) [1]

Возник вопрос, Что эффективне? использовать встроенный ассемблер внутри KOL-овских функций или написать процедуру целиком на Ассемблере и вызывать её

Насколько понял, вопрос о том, что эффективнее, процедура с asm-вставками, или полностью ассемблерная? Конечно полностью.
Хотя особо смысла нет, выигрыш будет небольшой, кроме отдельных случаев. В Delphi компилятор и так неплохо оптимизирует код.

Но тут возникает другой вопрос, Умеет ли дельфи переводить свой код напямую в Ассемблер??

Это как? Delphi свой код переводит в исполняемый, в Ассемблер то еще зачем? Или нужно посмотреть, что получилось при компиляции? тогда CPU window.


 
Vladimir Kladov   (2003-10-29 22:19) [2]

Что касаемо KOL, эффективности ассемблер не добавляет (если эффективность=скорость). Размер, правда, уменьшает. Потому как по размеру Delphi оптимизировать не умеет.


 
Anatoly Podgoretsky ©   (2003-10-29 22:52) [3]

Эффективность в случае примения вставок падает, из за потери в оптимизаторе


 
Legran   (2003-10-30 13:01) [4]

ИМХО имеет смысл писать на асме токо глубоко вложенные циклы.
иначе такая "оптимизация" сильно снижает эффективность _НАПИСАНИЯ_ПРОГРАММЫ_ , что порой важнее учитывая современные возможности техники.

А что касается вопроса по встроенным фун-ям в кол(в делпхи на самом деле), знайте процедура ВСТАВЛЕНАЯ на асме существенно не отличается от процедуры НАПИСАННОЙ на асме и подгружаемой допустим из длл, просто в делпхи выполняется инициализация и финализация для защиты данных(ака pusha/popa).


 
miek ©   (2003-10-30 16:19) [5]

У встроенного асма есть такая неприятная особенность - не умеет выравнивать код.

2Legran: Никаких pusha/popa не вставляется. Сам посмотри.


 
Deimos   (2003-10-31 00:01) [6]

Кстати, раз уж зашел разговор об оптимизации,
Как показывает опыт 60-90 процентов кода представляют собой просто воздух из нулей пошедших на выравнивание секций по адресам кратным, если я не ошибаюсь, 4кб..
Неплохо-бы заставить компилятор уменьшить кратность...
В Ассемблере это просто, там можно просто указать линкеру, что, мол, используй выравнивание по 4 байта (это минимальный возможный вариант) и размер проги сильно уменьшается, (например "hello world"в виде messageBox линкуемый по умолчанию имеет размер 2500 байт, а с минимальным выравниванием 740 байт !!!!!!(и это полноценная виндовая прога) и тоже работает без глюков), как-бы это на дельфи реализовать?
Хотя, это тоже не предел,
можно-же выкинуть MS-DOS stub, он всё-равно не нужен, а место занимает..
Можно и еще порезать. но это уже Дельфи не под силу, я думаю.. (типа очистки IMAGE_DIRECTORY, OLD EXE/PE-заголовков и др. подобные изменения)

Обращаюсь персонально к Господину Кладову..... Раз уж вам удалось заставить Дельфи резать лишний код, может быть и над этим подумаете ?
PS: Хотя-бы удаление MS-DOS stub,,


 
Vladimir Kladov   (2003-10-31 05:34) [7]

http://protools.anticrack.de/utilities.htm
там есть все, что нужно, чтобы заменить/удалить стуб, выровнять PE и т.д. и т.п.


 
Deimos   (2003-10-31 12:36) [8]

Спасибо, попробую..


 
RA   (2003-11-10 14:13) [9]

А какие-нибудь конкретные проги посоветовать можешь?


 
Deimos   (2003-11-10 19:21) [10]

кстати, половина прог выложенных на http://protools.anticrack.de/utilities.htm
с Delphi-KOL проектами не работают, там всё в основном на Assembler заточено.


 
BorisMor ©   (2003-11-11 10:27) [11]

PE Tools
http://neox.pisem.net/petools.html
Там есть опция "Rebuld PE"



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.031 c
1-1079714066
sherminator
2004-03-19 19:34
2004.04.11
перевод типов


8-1070942191
Zac
2003-12-09 06:56
2004.04.11
Проблема с MediaPlayer!!!


1-1082561531
Morfey
2004-04-21 19:32
2004.04.11
Маленький шрифт на канаве


3-1081942884
AndrewK
2004-04-14 15:41
2004.04.11
Как отрезать время в параметре DateTime?


14-1079468984
syte_ser78
2004-03-16 23:29
2004.04.11
Где скачать госты по технологии?