Что вы об этом думаете?
мне эта тема интересна, н пока что непонятно, как это применить в своих проектах.
Если бы сборка отладочной версии достаточно большого проекта пролетала со свистом, было бы хорошо
Re: TPDE: Немецкие студенты просто взяли и ускорили компиляцию в 20 раз
никак
все эти улучшения войшли и войдут в базу clang
так что юзайте последний clang
и ждите когда вся кодо база в него войдет
а для ускорения переходите на модули или используйте pch
Re: TPDE: Немецкие студенты просто взяли и ускорили компиляц
Здравствуйте, wl., Вы писали:
wl.>https://www.securitylab.ru/news/560030.php
wl.>Что вы об этом думаете? wl.>мне эта тема интересна, н пока что непонятно, как это применить в своих проектах. wl.>Если бы сборка отладочной версии достаточно большого проекта пролетала со свистом, было бы хорошо
Так и работаю в Delphi.
Компиляция проекта на родном компиляторе под Win32 (но уже с оптимизацией)
ровно на порядок быстрее компиляции его же под Linux через LLVM.
Здравствуйте, wl., Вы писали:
wl.>https://www.securitylab.ru/news/560030.php
wl.>Что вы об этом думаете?
>> по сравнению с LLVM Clang на базовом уровне оптимизации -O0.
Что такое нулевой уровень у Clang, можно показать на простейшем примере:
int foo(int a, int b) {
int x = a + b;
return x;
}
Результат (в 32-битке):
pushl %ebp
movl %esp, %ebp
pushl %eax ; <-- вообще не нужно
movl 12(%ebp), %eax ; <-- немедленно перекрывается следующей командой
movl 8(%ebp), %eax ; <-- немедленно перекрывается следующей командой
movl 8(%ebp), %eax
addl 12(%ebp), %eax
movl %eax, -4(%ebp) ; <-- сохраняем чтобы сразу же прочитать обратно
movl -4(%ebp), %eax
addl $4, %esp ; <-- следствие лишнего push eax
popl %ebp
ret
Для уровней 1 и 2 есть бенчмарки? Хорошо, если процентов на 10 ускорят.
wl.>мне эта тема интересна, н пока что непонятно, как это применить в своих проектах. wl.>Если бы сборка отладочной версии достаточно большого проекта пролетала со свистом, было бы хорошо
Были случаи, что "достаточно большой проект" при -O0 начинал занимать столько места и настолько тормозить, что отлаживать это было невозможно.
А уже -O1 у него настолько оптимизирует, что отлаживать сложно с другой стороны, слишком много переделок.
Итого IMO не туда усилия направляют.
Что я хотел бы видеть, это нормальный -Og с запретом передвижения кода между строками исходного текста и между вызовами функций из этой строки, но с оптимизацией внутри одной строки.
The God is real, unless declared integer.
Re[2]: TPDE: Немецкие студенты просто взяли и ускорили компиляцию в 20 раз
Здравствуйте, netch80, Вы писали:
N>Результат (в 32-битке):
N>
N> pushl %ebp
N> movl %esp, %ebp
N> pushl %eax ; <-- вообще не нужно
N> movl 12(%ebp), %eax ; <-- немедленно перекрывается следующей командой
N> movl 8(%ebp), %eax ; <-- немедленно перекрывается следующей командой
N> movl 8(%ebp), %eax
N> addl 12(%ebp), %eax
N> movl %eax, -4(%ebp) ; <-- сохраняем чтобы сразу же прочитать обратно
N> movl -4(%ebp), %eax
N> addl $4, %esp ; <-- следствие лишнего push eax
N> popl %ebp
N> ret
N>
У TPDE свой бэкенд, поэтому возможно код будет лучше. N>Для уровней 1 и 2 есть бенчмарки? Хорошо, если процентов на 10 ускорят.
Вопрос непонятен. Бенчмарки по ускорению уровней 1 и 2 при помощи TPDE? Нет, он вообще не умеет никаких 1 и 2. Это специальный бэкенд, заточенный на максимальную скорость компиляции, а не на оптимизацию кода. wl.>>мне эта тема интересна, н пока что непонятно, как это применить в своих проектах.
N>Были случаи, что "достаточно большой проект" при -O0 начинал занимать столько места и настолько тормозить, что отлаживать это было невозможно.
Ну, наверное можно скомпилировать TPDE только "достаточно маленький" кусочек "достаточно большого" проекта, и сосредоточить отладку именно на нём. N>Итого IMO не туда усилия направляют. N>Что я хотел бы видеть, это нормальный -Og с запретом передвижения кода между строками исходного текста и между вызовами функций из этой строки, но с оптимизацией внутри одной строки.
Звучит как тема ещё одной кандидатской
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: TPDE: Немецкие студенты просто взяли и ускорили компиляцию в 20 раз
Здравствуйте, wl., Вы писали:
wl.>Если бы сборка отладочной версии достаточно большого проекта пролетала со свистом, было бы хорошо
Может скажу наивность, но в большинстве случаев нет необходимости пересобирать весь проект.
Хотя если старый проект с замороченным легаси и не дают провести рефакторинг, тогда приходится терпеть.
Re[2]: TPDE: Немецкие студенты просто взяли и ускорили компиляцию в 20 раз
Здравствуйте, graniar, Вы писали:
wl.>>Если бы сборка отладочной версии достаточно большого проекта пролетала со свистом, было бы хорошо
G>Может скажу наивность, но в большинстве случаев нет необходимости пересобирать весь проект. G>Хотя если старый проект с замороченным легаси и не дают провести рефакторинг, тогда приходится терпеть.
Множество либ хидер онли, иногда cpp-шник — единственный файл проекта
Здравствуйте, Marty, Вы писали:
M>Множество либ хидер онли, иногда cpp-шник — единственный файл проекта
А ну если большие любители шаблонов — сами себе злобные буратины.
Прирост производительности незаметен, зато куча гемора и таскать эти параметры повсюду за собой.
Re[4]: TPDE: Немецкие студенты просто взяли и ускорили компиляцию в 20 раз
Здравствуйте, graniar, Вы писали:
M>>Множество либ хидер онли, иногда cpp-шник — единственный файл проекта
G>А ну если большие любители шаблонов — сами себе злобные буратины. G>Прирост производительности незаметен, зато куча гемора и таскать эти параметры повсюду за собой.
При использовании шаблонов очень заметен прирост производительности программиста
Здравствуйте, graniar, Вы писали:
M>>При использовании шаблонов очень заметен прирост производительности программиста
G>А у меня противоположный опыт, шаблоны слишком заморачивают архитектуру и затрудняют эволюцию проекта.
Здравствуйте, Marty, Вы писали:
M>Здравствуйте, graniar, Вы писали:
wl.>>>Если бы сборка отладочной версии достаточно большого проекта пролетала со свистом, было бы хорошо
G>>Может скажу наивность, но в большинстве случаев нет необходимости пересобирать весь проект. G>>Хотя если старый проект с замороченным легаси и не дают провести рефакторинг, тогда приходится терпеть.
M>Множество либ хидер онли, иногда cpp-шник — единственный файл проекта
конкретно с Qt так не получается, чуть шевельнешь хидер, и чуть не полпроекта пересобирается, с moc-файлами, хз почему так
Re[2]: TPDE: Немецкие студенты просто взяли и ускорили компиляцию в 20 раз
Здравствуйте, graniar, Вы писали:
G>Может скажу наивность, но в большинстве случаев нет необходимости пересобирать весь проект.
Как сказать, что вы не используете CI не говоря этого... Так что да, наивность.
Re[4]: TPDE: Немецкие студенты просто взяли и ускорили компиляцию в 20 раз
Здравствуйте, wl., Вы писали:
wl.>конкретно с Qt так не получается, чуть шевельнешь хидер, и чуть не полпроекта пересобирается, с moc-файлами, хз почему так
Forward declaration не используете?