Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26164
Рейтинг: 2127
#31: 2007-01-28 11:19:21 ЛС | профиль | цитата
Wolfik писал(а):
ибо скорость на грани фантастики

Да вот и я про то же. Такой "оптимизатор" и я состряпал. Смысл его проталкивать, толко как пример. Я все пытался скорость из этого безобразия выдавить. Я почему не стал писать IC, только потому, что HiAsm -- конструктор предполагаюший минимальные знания в области программирования. Ты можешь написть, я могу написать, а обычный юзер не сможет. Вот, что меня не радует.
PS На штатных у меня гораздо проще и эффективнее, и все равно -- скорость на грани фантастики.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#32: 2007-01-28 11:50:39 ЛС | профиль | цитата
nesco, вот чего я тебе скажу...

HiAsm был сделан по очень простой схеме, которую можно уловить, во-первых: посмотрев на исходники после Ctrl+D; во-вторых: на содержание CodeGen
Эта схема дает минимальные коды, которые можно еще минимизировать, если более правильно работать с KOL
И этот вариант предназначен для тестирования вопросов общего характера: насколько полна система визуального программирования, чего еще следует добавить или изменить в среде для достижения этого.
Это один фронт работы

Эффективность кодов - это другой вопрос. И общая схема не противоречит (как пока кажется) его разрешению.
Решение вопросов эффективности - иной способ кодогенерации, вот и все.
Кто же не дает им заниматься...
Разве что принципиальные ограничения Паскаля: почти полное отсутствие возможностей макропроцессинга, функциональный вызов по любому чиху (пожалуй, самая не эффективная команда проца, сброс конвейера и т.п.)

Дык народ-то давно интересуется и этими вопросами:
1) в проекте PHP изобретается свой парсер
2) в проекте FASM используется свой сверх-продвинутый парсер
И эти вопросы пока не так близко к стадии завершения, имхо
Имеются в виду вопросы кодогенерации, а не спектр компонентов - второе больше дело техники

Но исходная схема кодогенерации (проект Дельфи) функционально закончена, в том плане, что позволяет тестировать ПЕРВЫЙ поставленный вопрос.
Вот примерно так мне это и видится сегодня
карма: 9

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#33: 2007-01-28 13:23:41 ЛС | профиль | цитата
Galkov, но согласись -- не предназначен HiAsm для работы с большим количеством циклических операций с немаленьким количеством вложений. Много элементарных компонентов содержат у себя внутри кучу условий, и при каждом обращнии они проверяются, а если обращений -- 1.000.000, и таких компонентов больше десятка, и причем здесь тогда кодогенератор?
карма: 22

0
Ответов: 9906
Рейтинг: 351
#34: 2007-01-28 13:42:36 ЛС | профиль | цитата
Если это HiAsm вообще - то НЕ соглашусь. Хотя сегодня, проект Дельфи выполнен именно так.

1) Куча условий может быть принципиально разрешена на этапе компиляции.
2) Количество вложений тоже не догма - инлайнинг функционального вызова это как раз работа для CodeGen. Даже в проекте Дельфи вполне возможно инлайнить статические мультики, не имеющие линков.
Просто изменив CodeGen
И это даже бвло бы абсолютно правильно - помещение части схемы в мультик НЕ ДОЛЖНО поменять кодов, это чисто дизайнерский наворот (пока не появились линки - это уже нетривиальное решение разработчика)
карма: 9

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#35: 2007-01-28 14:15:20 ЛС | профиль | цитата
Galkov, получается, что изменив CodeGen, можно поднять быстродействие на несколько порядков?
карма: 22

0
Ответов: 9906
Рейтинг: 351
#36: 2007-01-28 14:36:51 ЛС | профиль | цитата
Wolfik, замечание про параллельные процессы:
Отрисовывать ProgressBar правильнее по синхронному событию (onSyncExec), или вообще по таймеру.

[size=-2]------ Добавлено в 14:36
nesco,
А Fasm и работает быстрее именно на столько...

И это именно HiAsm
Сама среда и знать ничего не хочет про язык программирования, и общается только с INI
карма: 9

0
Ответов: 241
Рейтинг: 45
#37: 2007-01-28 20:18:04 ЛС | профиль | цитата
Galkov, понял, спасибо за информацию
карма: 0

0
Ответов: 1891
Рейтинг: 110
#38: 2007-01-31 19:37:07 ЛС | профиль | цитата
Wolfik, хотелось бы что-то побыстрее
карма: 0
%time%
0
Разработчик
Ответов: 26164
Рейтинг: 2127
#39: 2007-01-31 21:40:25 ЛС | профиль | цитата
Alexbootch, ты хочешь сказать, что есть код оптимизирующий быстрее, чем у Wolfik'a? Куда уже быстрее? Ну сэкономишь ты еще секунду, и что это тебе даст?
карма: 22

0
Ответов: 1891
Рейтинг: 110
#40: 2007-01-31 21:59:50 ЛС | профиль | цитата
Извиняюсь, не видел схем 891 и VString.sha. То что надо. Wolfik, спасибо большое!


карма: 0
%time%
0
Ответов: 9906
Рейтинг: 351
#41: 2007-01-31 22:44:03 ЛС | профиль | цитата
Теоретически, измерительная схема может выглядеть примерно так (если из кода коллеги Wolfik убрать лишние декорации): code_920
И сразу станет смысл мероприятия...

Думается мне , что открытие, запись нового, запуск приложения - по-дольше будет, чем код коллеги на Дельфи.
Ну можно, предположим на ASM-е, на ваять в пару раз (глупостей то там не написано - чтобы в 10 раз) быстрее - а заметно ли это будет по сравнению с остальной суетой
карма: 9

0
файлы: 1code_920.txt [2.1KB] [375]
Ответов: 1891
Рейтинг: 110
#42: 2007-01-31 22:46:34 ЛС | профиль | цитата
Galkov, не компилится. Ошибка:
D:\HiAsm\Elements\Delphi\code\hiInlineCode_514A36C.pas(39) Error: There is no overloaded version of '_hi_CreateEvent' that can be called with these arguments
карма: 0
%time%
0
Ответов: 9906
Рейтинг: 351
#43: 2007-01-31 22:49:47 ЛС | профиль | цитата
А зачем тебе ее компилить - там ничего нет

Откомпилишь, начнешь говорить, что MemoryStream глючный
карма: 9

0
43
Сообщение
...
Прикрепленные файлы
(файлы не залиты)