|
Кастомные прекомпиляторы
|
|||
---|---|---|---|
#18+
Здрасьте, я на этом форуме редко бываю, извиняюсь что стилем не вышел, у меня вопрос. Я пишу на Delphi XE 8, и у меня есть мысль написать свой собственный прекомпилятор (кажется их правильнее называть препроцессорами) для оптимизации моего кода. Например, я буду писать в коде qfor8 вместо for, и мой прекомпилятор заменит такой код Код: Delphi 1. 2.
Код: Delphi 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Код: Delphi 1.
У меня вопрос, насколько это даст реальный прирост скорости. Я пока не знаю, как работает компилятор в текущем Delphi XE8, и поддерживает ли он, в частности, многоядерность (многопроцессорность). Я вообще не знаю чем отличается многоядерность от многопроцессорности, а также что такое интринсики и SIMD инструкции (и умеет ли Delphi XE8 их использовать). Вот ещё вопрос в этой области – правильно ли я понимаю, что для ускорения развёрнутого кода выше его надо переписать вот так: Код: Delphi 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
... |
|||
Модератор:
Изменено: 25.11.2018, 19:10 - Droog
Нравится:
Не нравится:
|
|||
25.11.2018, 19:09 |
|
Кастомные прекомпиляторы
|
|||
---|---|---|---|
#18+
Droog 25.11.2018, 19:09 У меня вопрос, насколько это даст реальный прирост скорости. Я пока не знаю, как работает компилятор в текущем Delphi XE8, и поддерживает ли он, в частности, многоядерность (многопроцессорность). Я вообще не знаю чем отличается многоядерность от многопроцессорности, а также что такое интринсики и SIMD инструкции (и умеет ли Delphi XE8 их использовать). Как это знание относится к Delphi и насколько он оптимизирует, не знаю. Посмотрите, что пишут сами разработчики компилятора про свой код. Оптимизация на оптимизацию необязательно хорошо. ... |
|||
Модератор:
Нравится:
Не нравится:
|
|||
25.11.2018, 19:37 |
|
Кастомные прекомпиляторы
|
|
---|---|
#18+
Droog 25.11.2018, 19:09 1. Оптимизировать имеет смысл не все, а только некоторые участки кода. (если это вообще необходимо) 2. Что вы такое делаете, что его надо оптимизировать? Расчеты криптовалют? Разбиваете шифровки (криптованные сообщения)? Я к тому, что ввод с клавиатуры нет смысла оптимизировать )) А чисто вычислительные задачи, они во-первых редкость, во-вторых там лучше оптимизировать алгоритм, а не код. 3. А вообще, Дельфи неплохо оптимизирует код, и там трудно что-то улучшить. 4. Современная программа, это всегда форма и за ней - база данных. Как правило, много вычислений производятся именно в базах данных, а Дельфи предоставляет только интерфейс к пользователям. ... |
|
Модератор:
|
|
26.11.2018, 15:28 |
|
Кастомные прекомпиляторы
|
|||
---|---|---|---|
#18+
Droog 25.11.2018, 19:09 У меня вопрос, насколько это даст реальный прирост скорости. ... |
|||
...верить в наше время нельзя никому, порой даже самому себе. Мне - можно. (с)
![]() Модератор:
Нравится:
Не нравится:
|
|||
26.11.2018, 17:32 |
|
Кастомные прекомпиляторы
|
|||
---|---|---|---|
#18+
лунный скиталец 26.11.2018, 15:28 Несколько мыслей, в разброс: 1. Оптимизировать имеет смысл не все, а только некоторые участки кода. (если это вообще необходимо) 2. Что вы такое делаете, что его надо оптимизировать? Расчеты криптовалют? Разбиваете шифровки (криптованные сообщения)? Я к тому, что ввод с клавиатуры нет смысла оптимизировать )) А чисто вычислительные задачи, они во-первых редкость, во-вторых там лучше оптимизировать алгоритм, а не код. 3. А вообще, Дельфи неплохо оптимизирует код, и там трудно что-то улучшить. 4. Современная программа, это всегда форма и за ней - база данных. Как правило, много вычислений производятся именно в базах данных, а Дельфи предоставляет только интерфейс к пользователям. Я слышал, тут может быть по-разному. В одних случаях критических (лимитирующих) участков кода немного, и всех их можно разобрать, оптимизировать или переписать на ассемблер. Но в других случаях эти участки размыты по разным местам кода, и трудно сходу найти где именно лимитирующая часть. И в таких ситуациях, как я понимаю, проявляются преимущества C++ перед Dephi А я предлагаю программу, которая не разбираясь размножит и проинлайнит весь код, так что и анализировать ничего не придётся - просто перекомпилировали (пропустили через препроцессор) проект, код получился страшный (сохранён в отдельном каталоге), но после его компиляции исходная программа в целом стала работать быстрее. И мой вопрос - насколько быстрее? Вообще я давно думаю, что хороший ЯП должен поддерживать несколько вариантов одного и того же кода - для отладочной и финальной компиляции. ... |
|||
Модератор:
Нравится:
Не нравится:
|
|||
26.11.2018, 18:16 |
|
Кастомные прекомпиляторы
|
|||
---|---|---|---|
#18+
Droog 26.11.2018, 18:16 А я предлагаю программу, которая не разбираясь размножит и проинлайнит весь код, так что и анализировать ничего не придётся - просто перекомпилировали (пропустили через препроцессор) проект, код получился страшный (сохранён в отдельном каталоге), но после его компиляции исходная программа в целом стала работать быстрее. ... |
|||
...верить в наше время нельзя никому, порой даже самому себе. Мне - можно. (с)
![]() Модератор:
Нравится:
Не нравится:
|
|||
26.11.2018, 18:22 |
|
Кастомные прекомпиляторы
|
|||
---|---|---|---|
#18+
Кукусик 26.11.2018, 18:22 Droog 26.11.2018, 18:16 А я предлагаю программу, которая не разбираясь размножит и проинлайнит весь код, так что и анализировать ничего не придётся - просто перекомпилировали (пропустили через препроцессор) проект, код получился страшный (сохранён в отдельном каталоге), но после его компиляции исходная программа в целом стала работать быстрее. ... |
|||
Sent from my mind
Модератор:
Изменено: 26.11.2018, 18:53 - Guest 002
Нравится:
Не нравится:
|
|||
26.11.2018, 18:53 |
|
Кастомные прекомпиляторы
|
|||
---|---|---|---|
#18+
Guest 002 26.11.2018, 18:53 А смысл с синтаксисом заморачиваться? ... |
|||
...верить в наше время нельзя никому, порой даже самому себе. Мне - можно. (с)
![]() Модератор:
Нравится:
Не нравится:
|
|||
26.11.2018, 19:06 |
|
Кастомные прекомпиляторы
|
|||
---|---|---|---|
#18+
прекомпилятор. заменять "неоптимальные" конструкции на "оптимальные". а компилятор оставить штатный ... |
|||
Sent from my mind
Модератор:
Нравится:
Не нравится:
|
|||
26.11.2018, 19:44 |
|
Кастомные прекомпиляторы
|
|||
---|---|---|---|
#18+
Guest 002, Да, всё так. ... |
|||
Модератор:
Нравится:
Не нравится:
|
|||
27.11.2018, 10:36 |
|
Кастомные прекомпиляторы
|
|||
---|---|---|---|
#18+
Дельфи и прирост скорости... Может поменять язык разработки? ... |
|||
Модератор:
Нравится:
Не нравится:
|
|||
27.11.2018, 19:40 |
|
Кастомные прекомпиляторы
|
|||
---|---|---|---|
#18+
Tayfur 27.11.2018, 19:40 Дельфи и прирост скорости... Может поменять язык разработки? ... |
|||
Sent from my mind
Модератор:
Нравится:
Не нравится:
|
|||
27.11.2018, 19:41 |
|
Кастомные прекомпиляторы
|
|||
---|---|---|---|
#18+
Tayfur 27.11.2018, 19:40 Дельфи и прирост скорости... Может поменять язык разработки? ... |
|||
Модератор:
Нравится:
Не нравится:
|
|||
28.11.2018, 01:25 |
|
Кастомные прекомпиляторы
|
|
---|---|
#18+
Droog 26.11.2018, 18:16 лунный скиталец 26.11.2018, 15:28 Несколько мыслей, в разброс: 1. Оптимизировать имеет смысл не все, а только некоторые участки кода. (если это вообще необходимо) 2. Что вы такое делаете, что его надо оптимизировать? Расчеты криптовалют? Разбиваете шифровки (криптованные сообщения)? Я к тому, что ввод с клавиатуры нет смысла оптимизировать )) А чисто вычислительные задачи, они во-первых редкость, во-вторых там лучше оптимизировать алгоритм, а не код. 3. А вообще, Дельфи неплохо оптимизирует код, и там трудно что-то улучшить. 4. Современная программа, это всегда форма и за ней - база данных. Как правило, много вычислений производятся именно в базах данных, а Дельфи предоставляет только интерфейс к пользователям. Я слышал, тут может быть по-разному. В одних случаях критических (лимитирующих) участков кода немного, и всех их можно разобрать, оптимизировать или переписать на ассемблер. Но в других случаях эти участки размыты по разным местам кода, и трудно сходу найти где именно лимитирующая часть. И в таких ситуациях, как я понимаю, проявляются преимущества C++ перед Dephi А я предлагаю программу, которая не разбираясь размножит и проинлайнит весь код, так что и анализировать ничего не придётся - просто перекомпилировали (пропустили через препроцессор) проект, код получился страшный (сохранён в отдельном каталоге), но после его компиляции исходная программа в целом стала работать быстрее. И мой вопрос - насколько быстрее? Вообще я давно думаю, что хороший ЯП должен поддерживать несколько вариантов одного и того же кода - для отладочной и финальной компиляции. в зависомости от выбора, ответ на ваш вопрос может быть от "нафиг не надо", до "не надо совершенно". ... |
|
Модератор:
|
|
28.11.2018, 13:19 |
|
|
start [/forum/topic.php?fid=2&fpage=5&tid=19927]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
126ms |
get forum data: |
3ms |
get page messages: |
216ms |
get tp. blocked users: |
2ms |
others: | 21ms |
total: | 416ms |
0 / 0 |