|
|
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
Доброе время суток, никто не поделится ссылочкой (или возможно аргументированно выскажется тут), интересно сравнение скорости исполнения приложений скомпиленых последними версиями компиляторов от абракадабры (идеры) и FPC. Чисто визуально складывается впечатление что FPC (напр. 3.0.4) несколько проигрывает последним компиляторам от идеры но хотелось бы поподробнее посмотреть на какой разрядности, на каких операциях, в идеале почему и как с этим бороться если это возможно. спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2018, 12:54 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
Mikhail TchervonenkoЧисто визуально складывается впечатление что FPC (напр. 3.0.4) несколько проигрывает последним компиляторам от идеры но хотелось бы поподробнее посмотреть на какой разрядности, на каких операциях, в идеале почему и как с этим бороться если это возможно. Если речь о "чисто визуально", то дело, скорее всего, не в компиляторе, а в RTL, а конкретно в менеджере памяти. У классических дельфей с 2006 версии по дефолту используется FastMM, у FPC ничего подобного нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2018, 14:19 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
Имхо, вопрос из серии "что быстрее - java или c#". Что значит "визуально" - гуй отзывчивей? Так их сравнивать вообще нельзя. А в плане молотилок - в RTL х32 многие функции сразу на асме, а вот под остальные платформы компилится из Паскаля. Насчет fpc не в курсе. Что мешает сделать бенчи на интересующие операции да сравнить? Или просто машинный код посмотреть. Вообще насколько я знаю, родной компилятор Эмбы довольно тупой - никаких тебе особо хитрых оптимизаций или новых инструкций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2018, 14:22 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
Василий №2Имхо, вопрос из серии "что быстрее - java или c#". .... Что мешает сделать бенчи на интересующие операции да сравнить? Или просто машинный код посмотреть. ....... можно, но зачем повторять работу которую уже наверняка кто то сделал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2018, 14:35 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
FPC в целом несколько медленней. Но это не правило. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2018, 14:37 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
Оптимизатор Delphi не модифицировался с момента создания. С момента D5 уж точно. С x64 появилось больше регистров и программы стали пошустрее Не помню с какой версии, может быть с 2006, в сборку вошёл FastMM В FPC в свою очередь есть пара клевых оптимизаций. Типа целочисленное деление через умножение, говорят, с FPU работает лучше. Но по регистрам рассовывает плохо. У меня есть проект CrystalPathFinding, где реаллоки памяти сведены к нулю, FPU практически нет, чистый процессор. Так вот FPC отрабатывает в 2 раза медленнее. Что повергло меня в шок. У меня всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2018, 20:59 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, Оптимизация на уровне процессора не такая простая и однозначная штука, как кажется. Реальное ускорение, как правило, даёт не распихивание по регистрам, а SIMD или многопоточная обработка. X64 по скорости существенно не отличается от X32, несмотря на большее число регистров. авторОптимизатор Delphi не модифицировался с момента создания. С момента D5 уж точно. Я не скажу насчет оптимизатора. Но многие библиотеки существенно улучшены. Работы со строками, математика, FastMM включен в состав. Так что говорить, что общая производительность не выросла неверно. Выросла и существенно. Многое из FastCode добавилось непосредственно в Delphi: https://en.wikipedia.org/wiki/FastCode ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2018, 21:13 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUС x64 появилось больше регистров и программы стали пошустрее Медленнее. Как минимум case в x64 не оптимизируется, да и размеры типов данных сказываются на общей производительности. SOFT FOR YOUВ FPC в свою очередь есть пара клевых оптимизаций. В FPC дофига клёвых оптимизаций, есть даже векторизация. Вот если бы он ещё и компилитровал всё, вообще цены бы небыло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2018, 21:27 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
Однако х86 программа на дельфи втупую перекомпилированная на х64 работает как минимум процентов на 10 быстрей. Многократно мною проверено на многих живых проектах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2018, 21:59 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
Вот вам код FPC x64 -O3: Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2018, 15:56 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUВот вам код FPC x64 -O3:И что это должно кому-то доказать или опровергнуть? У тебя, как обычно, своеобразная тестовая выборка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2018, 22:01 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUВот вам код FPC x64 -O3:а как должно быть? в http://agner.org/optimize/instruction_tables.pdf говорят что что эти 3 инструкции будут выполнены за 0.33 такта каждая. Вроде не плохо, не? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2018, 23:44 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
white_nigger, Ты хочешь, чтобы я тебе весь листинг дизассемблерного дерьма привёл? Или что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2018, 00:15 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
kep-ko, Эти операции будут выполняться 3 такта, т.к. команды зависимые А должна быть 1 команда 0.33 такта Но это не самое отвратительное. Самое отвратительное - что юзается огромное количество лишних регистров, а нужные переменные хранятся на стеке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2018, 00:18 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, - не знаю, надо затестить, но лень - там щас активно переименование регистров вроде используется - ну и асмовые объектники слинковать можно, если уж О4 не доставляет ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2018, 00:55 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
Кому там не нравился case в x64 Вот вам case на FreePascal. P.S. сцуко, даже обнуление переменной через mov делается Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: sql 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. 33. 34. 35. 36. 37. 38. 39. 40. 41. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2018, 13:30 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUВот вам case на FreePascal. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2018, 14:28 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, Вся печаль в том, что ты занимаешься ловлей блох. В реальном приложении - ну да - 10% прирост получишь. Другими словами - ни о чём. Хотя бы порядок, хотя бы двоичный (что, собственно, с simd/мультипоточкой и получается). А лучше два-три порядка и десятичных. Но это - либо алгоритмическое, либо расчет видюхами. Нравится за блохами гоняться - флаг, как говорится, в руки и барабан на шею. авторсцуко, даже обнуление переменной через mov делается Сырцы доступны, вредной Идеры нет, обижаться не на кого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2018, 14:36 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Код в студию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2018, 16:16 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
makhaon, Зависит от того, каков характер реального приложения. По каким ещё критериям ты хотел сравнивать FPC и Delphi? В моём реальном приложении, как я уже говорил, проводились расчёты на процессоре, и FPC сработал в 2 раза медленнее. Как раз из-за "блох", о которых ты говоришь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2018, 16:20 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, Какой код тебе ещё нужен? Два цикла с вызовом твоей функции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2018, 16:34 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Ну откуда я знаю, чего ты там в какой последовательности вызываешь Выкладывай, посмотрим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2018, 16:35 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUВ моём реальном приложении, как я уже говорил, проводились расчёты на процессоре, и FPC сработал в 2 раза медленнее. Тут недавно гоняли чисто вычислительный рейтрейсер, ни каких двукратных отставаний небыло и в помине. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2018, 16:44 |
|
||
|
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, Код: pascal 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. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2018, 16:44 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39616498&tid=2041114]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
186ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
94ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 554ms |

| 0 / 0 |
