The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Сравнение производительности компиляторов GCC 4.6, LLVM/Clan..., opennews (??), 07-Ноя-11, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


7. "Сравнение производительности компиляторов GCC 4.6, LLVM/Clan..."  –2 +/
Сообщение от Аноним (-), 07-Ноя-11, 19:37 
Шланг раза в 3 быстрее gcc, вообще-то.
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

9. "Сравнение производительности компиляторов GCC 4.6, LLVM/Clan..."  +3 +/
Сообщение от Аноним (-), 07-Ноя-11, 19:48 
> Шланг раза в 3 быстрее gcc, вообще-то.

На любых задачах или только на избранных?
И где пруфлинк, кстати?

Ответить | Правка | Наверх | Cообщить модератору

13. "Сравнение производительности компиляторов GCC 4.6, LLVM/Clan..."  +1 +/
Сообщение от anonymous (??), 07-Ноя-11, 21:08 
Cleng тормознее раза в 3. Парсер текста быстрее, а остальное все шлак. Вам парсить текст или бинарный код получать?
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

14. "Сравнение производительности компиляторов GCC 4.6, LLVM/Clan..."  +/
Сообщение от Аноним (-), 07-Ноя-11, 21:12 
Без пруфлинка ты сам знаешь кто.
Ответить | Правка | Наверх | Cообщить модератору

16. "Сравнение производительности компиляторов GCC 4.6, LLVM/Clan..."  +/
Сообщение от Аноним (-), 07-Ноя-11, 21:37 
> Без пруфлинка ты сам знаешь кто.

Автор вброса про якобы быстрый clang тоже подтверждения не привел, так что счет пока 1:1.

Ответить | Правка | Наверх | Cообщить модератору

20. "Сравнение производительности компиляторов GCC 4.6, LLVM/Clan..."  +/
Сообщение от Аноним (-), 07-Ноя-11, 22:58 
Первый вброс
>Хочу увидеть подтверждение (или опровержение) тормознутости шланга
Ответить | Правка | Наверх | Cообщить модератору

22. "Сравнение производительности компиляторов GCC 4.6, LLVM/Clan..."  +/
Сообщение от Алексей (??), 07-Ноя-11, 23:23 
На вскидку
http://www.phoronix.com/scan.php?page=article&item=gcc_46_ll...
http://blog.mozilla.com/respindola/2011/02/04/clang-results/
и т.п. В общем скорость компиляции clang вроде никто не оспаривал.
Ответить | Правка | Наверх | Cообщить модератору

24. "Сравнение производительности компиляторов GCC 4.6, LLVM/Clan..."  +/
Сообщение от анонимммм (?), 08-Ноя-11, 02:01 
> На вскидку
> http://www.phoronix.com/scan.php?page=article&item=gcc_46_ll...
> http://blog.mozilla.com/respindola/2011/02/04/clang-results/
> и т.п. В общем скорость компиляции clang вроде никто не оспаривал.

можешь смело на ночь запускать сборку шланга шлангом на кор два дуо.

Ответить | Правка | Наверх | Cообщить модератору

25. "Сравнение производительности компиляторов GCC 4.6, LLVM/Clan..."  +1 +/
Сообщение от namefields (?), 08-Ноя-11, 09:13 
>> http://blog.mozilla.com/respindola/2011/02/04/clang-results/

В комментах пишут же, юзай gcc поновее чем 4.2

Результаты фороникса хороши для лабораторных работ - т.е. посчитать погрешность измерений.

Ответить | Правка | К родителю #22 | Наверх | Cообщить модератору

34. "Сравнение производительности компиляторов GCC 4.6, LLVM/Clan..."  +/
Сообщение от Aleksey (??), 08-Ноя-11, 16:40 
LLVM has another C-language family front-end called
CLANG which can speed up compilation in optimization mode
(-O2/-O3) upto 20%-25%.  So even as LLVM optimizations
are not faster than GCC optimizations, CLANG front-end is really
faster than GCC-frontend.  I think GCC community should pay more attention
to this fact.  Fortunately, a few new GCC projects address to this problem
and I hope this problem will be solved or alleviated.

http://gcc.gnu.org/ml/gcc/2011-09/msg00043.html
и соответственно тесты
http://vmakarov.fedorapeople.org/spec/

Ответить | Правка | Наверх | Cообщить модератору

46. "Сравнение производительности компиляторов GCC 4.6, LLVM/Clan..."  +/
Сообщение от Аноним (-), 08-Ноя-11, 18:09 
Да блин, кого эта скорость компиляции волнует? Даже простенький make допирает пересобирать только то что изменено. Поэтому при обычной разработке программы время компиляции никого не напрягает: 1-2 файла по любому на современном процессоре пересобираются быстро.

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

Ответить | Правка | Наверх | Cообщить модератору

48. "Сравнение производительности компиляторов GCC 4.6, LLVM/Clan..."  +1 +/
Сообщение от PereresusNeVlezaetBuggy (ok), 08-Ноя-11, 18:56 
> Да блин, кого эта скорость компиляции волнует? Даже простенький make допирает пересобирать
> только то что изменено. Поэтому при обычной разработке программы время компиляции
> никого не напрягает: 1-2 файла по любому на современном процессоре пересобираются
> быстро.

Посмотрите внимательно на то, как собирается какой-нибудь проект на Qt, да или вообще плюсах. Сколько времени занимает компиляция каждого объектного файла, сколько занимает конечная линковка. И да, опции "-O0 -ggdb" не забудьте, ибо они при разработке как раз используются. Бинарники на сто мегабайт, думаете, в мгновение ока записываются? А цикл "сборка-запуск" при разработке нередко раз в несколько минут, а то и ещё чаще, выполняется.

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

А где-то фэйлит GCC, и что? Только у LLVM-компиляторов ещё и задел больший, и прогрессируют быстрее.

> Поэтому
> растопырить пальчики в стиле "после 2 недель пересборки всех программ я
> получил прирост производительности на целые 2%" уже не получится. И что-то
> мне подсказывает что задротам будет обидно возиться с компилам если их
> в результате будет обгонять даже стоковая убунта с дефолтными настройками у
> самого последнего хомячка, который вообще не знает что такое компилятор.

А причём тут вообще задроты? Компилятор - инструмент разработчика. Чем собирает разработчик, тем будут собирать и все остальные.

Ответить | Правка | Наверх | Cообщить модератору

49. "Сравнение производительности компиляторов GCC 4.6, LLVM/Clan..."  +/
Сообщение от Andrey Mitrofanov (?), 08-Ноя-11, 19:05 
> А причём тут вообще задроты?

Зато выводы какие--vvv далекоидущие...

> Компилятор - инструмент разработчика. Чем собирает разработчик,
> тем будут собирать и все остальные.

Вот и я говорю, у разрабов xorg-а GNU/Linux же, всем остальным понятно "чем собирать" -- какие ещё vrsafb и fbsd?.........................

Ответить | Правка | Наверх | Cообщить модератору

70. "Сравнение производительности компиляторов GCC 4.6, LLVM/Clan..."  +1 +/
Сообщение от Аноним (-), 11-Ноя-11, 23:50 
> Посмотрите внимательно на то, как собирается какой-нибудь проект на Qt, да или
> вообще плюсах.

Да нормально более-менее. Если пересобирать 1-2 файла, как это происходит при типовом процессе написания программ - проблем никаких. Или вы регулярно перелопачиваете полпроекта? А потом не задалбывает разгребать полпроекта то с вопросом "ой, где же я накосячил?"

> Сколько времени занимает компиляция каждого объектного файла,

Ну, несколько секунд, максимум. Учтя что при обычной пересборке проекта меняется 1-2 файла - компил и линковка укладывается в несколько секунд.

> сколько занимает конечная линковка.

Зависит от размера проекта, но обычно не сильно долго.

> И да, опции "-O0 -ggdb" не забудьте, ибо они
> при разработке как раз используются. Бинарники на сто мегабайт, думаете, в
> мгновение ока записываются?

Именно так: дисковый буфер любой современной машины больше 100Мб. Бинарь просто вываливается в него как в бездну, мгновенно. По той же причине линковка того что мы линковали минуту назад - испытывает аццкий cache hit и диск почти не озадачивается. А програмер использующий рухлядь где недостаточно места в памяти но при том ворочающий 100Мб бинари при этом - очевидно ССЗБ. Такое сочетание куда типичнее для задротов пересобирающих себе всю систему с поводом и без.

> А цикл "сборка-запуск" при разработке нередко раз в
> несколько минут, а то и ещё чаще, выполняется.

Это что, разработка либрофиса на первом пентиуме с 16Мб оперативки чтоли? У меня за несколько минут соберется, пардон, ВЕСЬ довольно крупный проект на си++, с нуля. Типа battle for wesnoth или там qutim например, если уж мы о плюсах.

> А где-то фэйлит GCC, и что? Только у LLVM-компиляторов ещё и задел
> больший, и прогрессируют быстрее.

Это шланг фэйлит - см на форониксовых тестах что и где. Гсс сфэйлил всерьез только 1 раз. Точнее, это Open64 словил Epic Win дружно обставив шланг и гцц на амд в разы. Но к сожалению оно вообще не осиливает генерить код под интел и поэтому даже такой эпичный вин ему обеспечит как максимум сильно нишевое применение (и то, там где битва за скорость числодробления до упора - GPU всяко перспективнее).

> А причём тут вообще задроты? Компилятор - инструмент разработчика. Чем собирает
> разработчик, тем будут собирать и все остальные.

Будут. Или не будут. Зависит от. Ну вот например собирает разработчик программу вьюжлом. А под опенок его бац и нету. Соберут тем чем собирается, что есть и не создает лишних проблем или забьют.

Ответить | Правка | Наверх | Cообщить модератору

80. "Сравнение производительности компиляторов GCC 4.6, LLVM/Clan..."  +/
Сообщение от PereresusNeVlezaetBuggy (ok), 12-Ноя-11, 02:50 
>> Посмотрите внимательно на то, как собирается какой-нибудь проект на Qt, да или
>> вообще плюсах.
> Да нормально более-менее. Если пересобирать 1-2 файла, как это происходит при типовом
> процессе написания программ - проблем никаких. Или вы регулярно перелопачиваете полпроекта?
> А потом не задалбывает разгребать полпроекта то с вопросом "ой, где
> же я накосячил?"

Не обязательно перелопачивать пол-проекта, чтобы их пришлось перекомпилировать, достаточно поменять особо "популярный" хедер. Но и даже если ограничиваться модулями (типа .cxx), время тратится заметно.

>> Сколько времени занимает компиляция каждого объектного файла,
> Ну, несколько секунд, максимум. Учтя что при обычной пересборке проекта меняется 1-2
> файла - компил и линковка укладывается в несколько секунд.

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

>> сколько занимает конечная линковка.
> Зависит от размера проекта, но обычно не сильно долго.

"И на том спасибо, добрый человек. А можно чуть конкретнее?", - к/ф "Ширли-мырли"

>> И да, опции "-O0 -ggdb" не забудьте, ибо они
>> при разработке как раз используются. Бинарники на сто мегабайт, думаете, в
>> мгновение ока записываются?
> Именно так: дисковый буфер любой современной машины больше 100Мб. Бинарь просто вываливается
> в него как в бездну, мгновенно. По той же причине линковка
> того что мы линковали минуту назад - испытывает аццкий cache hit
> и диск почти не озадачивается. А програмер использующий рухлядь где недостаточно
> места в памяти но при том ворочающий 100Мб бинари при этом
> - очевидно ССЗБ. Такое сочетание куда типичнее для задротов пересобирающих себе
> всю систему с поводом и без.

Спасибо, вот теперь видно, что программированием всерьёз вы не занимаетесь. Потому что даже не понимаете, о чём говорите. Вы кроме как пропускной способности дискового интерфейса, вообще никаких причин для тормозов не видите, не? Надо рассказать, из чего эти мегабайты состоят и как формируются?

>> А цикл "сборка-запуск" при разработке нередко раз в
>> несколько минут, а то и ещё чаще, выполняется.
> Это что, разработка либрофиса на первом пентиуме с 16Мб оперативки чтоли? У
> меня за несколько минут соберется, пардон, ВЕСЬ довольно крупный проект на
> си++, с нуля. Типа battle for wesnoth или там qutim например,
> если уж мы о плюсах.

qutim? Крупный проект? Убили наповал. :)) А насчёт игр - вы размер проекта чем меряете, мегабайтами дистрибутивного пакета? А если выкинуть ресурсы? ;)

>> А где-то фэйлит GCC, и что? Только у LLVM-компиляторов ещё и задел
>> больший, и прогрессируют быстрее.
> Это шланг фэйлит - см на форониксовых тестах что и где. Гсс
> сфэйлил всерьез только 1 раз. Точнее, это Open64 словил Epic Win
> дружно обставив шланг и гцц на амд в разы. Но к
> сожалению оно вообще не осиливает генерить код под интел и поэтому
> даже такой эпичный вин ему обеспечит как максимум сильно нишевое применение
> (и то, там где битва за скорость числодробления до упора -
> GPU всяко перспективнее).

Если вы надеялись, что я забыл, как выглядят те графики, то вы ошибаетесь. По новой разбирать тесты смысла не вижу, хотите спорить с чем угодно, лишь бы спорить - ваше право.

>> А причём тут вообще задроты? Компилятор - инструмент разработчика. Чем собирает
>> разработчик, тем будут собирать и все остальные.
> Будут. Или не будут. Зависит от. Ну вот например собирает разработчик программу
> вьюжлом. А под опенок его бац и нету. Соберут тем чем
> собирается, что есть и не создает лишних проблем или забьют.

Теоретически такое возможно, да. А к реальности не хотите вернуться?

P.S.: Насчёт "не создаёт лишних проблем" - это, как вы говорите, уже окончательный epic fail с вашей стороны.

Ответить | Правка | К родителю #70 | Наверх | Cообщить модератору

51. "Сравнение производительности компиляторов GCC 4.6, LLVM/Clan..."  –1 +/
Сообщение от iZEN (ok), 08-Ноя-11, 19:40 
> Да блин, кого эта скорость компиляции волнует?

Меня.

Для систем с непрерывной интеграцией изменений важна высокая скорость компиляции исходного кода.

> Даже простенький make допирает пересобирать
> только то что изменено. Поэтому при обычной разработке программы время компиляции
> никого не напрягает: 1-2 файла по любому на современном процессоре пересобираются
> быстро.

При обычной — да. На чём-то крупнее, когда несколько сторонних программных компонентов зависят от одной изменённой библиотеки — уже нет — нужно перекомпилировать всё дерево зависимостей.

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

Clang'у есть куда расти. GCC достиг потолка роста и оптимизаций.

> Поэтому
> растопырить пальчики в стиле "после 2 недель пересборки всех программ я
> получил прирост производительности на целые 2%" уже не получится.

В данном случае ситуация обратная: GCC компилирует хоть и не быстро, но производит довольно шустрый код. Однако это не значит, что ради нескольких процентов общего быстродействия нужно откомпилировать всё ПО с помощью GCC и потратить на это неделю. Уж лучше потратить три дня для компиляции ПО с помощью Clang/LLVM, но получить работающий код РАНЬШЕ.

> И что-то
> мне подсказывает что задротам будет обидно возиться с компилам если их
> в результате будет обгонять даже стоковая убунта с дефолтными настройками у
> самого последнего хомячка, который вообще не знает что такое компилятор.

Как на десктопе измерить быстродействие десктопных программ и сравнить, скажем, GNOME-Mplayer с кодеками, собранный Clang, и GNOME-Mplayer с кодеками, собранный GCC 4.5.x? Лично я не представляю, какие показатели быстродействия должны приниматься в расчёт. Пробовал. Собирал и тем, и этим, и GCC 4.2.2. Вроде всё одинаково реагирует на мышь и нажатие клавиш клавиатуры, воспроизведение везде одинаковое — без тормозов.

Ответить | Правка | К родителю #46 | Наверх | Cообщить модератору

54. "Сравнение производительности компиляторов GCC 4.6, LLVM/Clan..."  +/
Сообщение от Andrey Mitrofanov (?), 08-Ноя-11, 21:11 
>>скорость компиляции волнует?
> Меня.
> Для систем с непрерывной интеграцией изменений важна высокая скорость компиляции исходного  кода.

Тема тормозов и CI не раскрыта.

>> Даже простенький make допирает пересобирать
> зависят от одной изменённой библиотеки — уже нет — нужно перекомпилировать
> всё дерево зависимостей.

Уважаемому сэру кроме слова make так же ничего не говорят слова динамическая линковка и стабильный ABI? Ну да, ну да, джавва, fbsd, clang. Этапы Большого Пути.


>> Проблемы всяких отмороженных задротов, пересобирающих систему ради процесса
> Clang'у есть куда расти. GCC достиг потолка роста и оптимизаций.

Да, не все з. ещё пересобирают систему ради $чкго-то_там_в_носу, плотенциал же ж ждя роста Шланга...

...Ждём FreeBSD 10+ -- Шланг в массы Team. Основатель-патриарьх.

Ответить | Правка | Наверх | Cообщить модератору

60. "Сравнение производительности компиляторов GCC 4.6, LLVM/Clan..."  +/
Сообщение от iZEN (ok), 09-Ноя-11, 22:12 
> Уважаемому сэру кроме слова make так же ничего не говорят слова динамическая
> линковка и стабильный ABI?

Вы это скажите разработчикам библиотек icu, libjpeg и libpng, после изменения минорной версии которых приходится перекомпилировать 90% пакетов из дерева зависимостей десктопных приложений.

> Ну да, ну да, джавва, fbsd, clang.
> Этапы Большого Пути.

Только причём тут FreeBSD? Она только запускает вышеописанные приложения, созданные сторонними разработчиками. Даже компиляторы, которыми производится сборка всего ПО, и то — НЕ РОДНЫЕ!

Ответить | Правка | К родителю #54 | Наверх | Cообщить модератору

61. "Сравнение производительности компиляторов GCC 4.6, LLVM/Clan..."  +/
Сообщение от PereresusNeVlezaetBuggy (ok), 09-Ноя-11, 22:14 
>> Уважаемому сэру кроме слова make так же ничего не говорят слова динамическая
>> линковка и стабильный ABI?
> Вы это скажите разработчикам библиотек icu, libjpeg и libpng, после изменения минорной
> версии которых приходится перекомпилировать 90% пакетов из дерева зависимостей десктопных
> приложений.

Речь совсем не об этом, перечитайте тред.

Ответить | Правка | К родителю #60 | Наверх | Cообщить модератору

62. "Сравнение производительности компиляторов GCC 4.6,..."  +/
Сообщение от arisu (ok), 09-Ноя-11, 23:32 
> Clang'у есть куда расти. GCC достиг потолка роста и оптимизаций.

а вот с этого места давай поподробней. с ссылочками, разбором технологий ллвм и технологий гцц.

не, я понимаю, что ты сейчас опять сольёшься и сделаешь вид, что этого камента не видел. но мало ли…

Ответить | Правка | Наверх | Cообщить модератору

66. "Сравнение производительности компиляторов GCC 4.6,..."  +/
Сообщение от iZEN (ok), 10-Ноя-11, 01:51 
>> Clang'у есть куда расти. GCC достиг потолка роста и оптимизаций.
> а вот с этого места давай поподробней. с ссылочками, разбором технологий ллвм и технологий гцц.

Технология у GCC закрытая: промежуточный код недоступен для изучения и оптимизаций сторонним разработчикам. На этом точки роста GCC убиты в зародыше.
В LLVM можно оптимизировать в том числе промежуточный код сторонними оптимизаторами. В этом точки роста LLVM/Clang.

Ответить | Правка | К родителю #62 | Наверх | Cообщить модератору

67. "Сравнение производительности компиляторов GCC 4.6,..."  +1 +/
Сообщение от arisu (ok), 10-Ноя-11, 01:57 
> Технология у GCC закрытая: промежуточный код недоступен для изучения и оптимизаций сторонним
> разработчикам.

лолчто? а, впрочем, понимаю: он же не на яве, а ты больше ничего и не знаешь. в частности, и того, что всё спокойно экспортируется, существует система плугинов и ещё много всего. и то правда: зачем тебе всякую фигню знать? главное — сказать какую-нибудь феерическую чушь и радоваться.

> В LLVM можно оптимизировать в том числе промежуточный код сторонними оптимизаторами. В
> этом точки роста LLVM/Clang.

(ржот) угу. а в гцц, видимо, нельзя. слушай, на свете вообще есть хоть одна вещь, о которой ты говоришь *после* её изучения, а не *вместо*?

Ответить | Правка | К родителю #66 | Наверх | Cообщить модератору

68. "Сравнение производительности компиляторов GCC 4.6,..."  +/
Сообщение от iZEN (ok), 10-Ноя-11, 02:17 
Читать до просветления: http://kemiisto.blogspot.com/2010/08/gcc-45-link-time-optimi...
— промежуточное представление кода на стадии компиляции появилось только в GCC 4.5.0, а отвязалось от Linux только в GCC 4.5.1:
    GCC's new link-time optimizer (-flto) now also works on a few non-ELF targets:

    Cygwin (*-cygwin*)
    MinGW (*-mingw*)
    Darwin on x86-64 (x86_64-apple-darwin*)

О какой кроссплатформенности LTO в GCC и применимости его в продакшене может идти речь, в то время, когда в LLVM source- and target-independent optimizer "из коробки" ПРОСТО РАБОТАЕТ. Пока просто, дальше — поглядим.

Оптимизации на основе Register Transfer Language (RTL) GCC и Intermediate Representation (IR) LLVM не будем сравнивать, а?

Ответить | Правка | К родителю #67 | Наверх | Cообщить модератору

71. "Сравнение производительности компиляторов GCC 4.6, LLVM/Clan..."  +1 +/
Сообщение от Аноним (-), 12-Ноя-11, 00:24 
>> Да блин, кого эта скорость компиляции волнует?
> Меня.

А ты вообще на яве программируешь вроде? :)

> Для систем с непрерывной интеграцией изменений важна высокая скорость
> компиляции исходного кода.

Я вроде просил задротов помешаных на пересборке всей системы с поводом и без не беспокоиться. С ними и так все понятно - им по определению некуда время девать. И mission critical задач у них нет.

>> никого не напрягает: 1-2 файла по любому на современном процессоре пересобираются
>> быстро.
> При обычной — да. На чём-то крупнее, когда несколько сторонних программных компонентов
> зависят от одной изменённой библиотеки — уже нет — нужно перекомпилировать
> всё дерево зависимостей.

Простите, если я разрабатываю библиотеку, пусть уж остальные сами перекомпиливают свои программы где им там надо и сколько надо с новой версией. Автор библы лопнет все программы пересобирать. Попробуй пересобрать для начала все программы использующие zlib? А зачем бы это тому кто поменял zlib? И динамическая линковка конечно же не комильфо?

> Clang'у есть куда расти. GCC достиг потолка роста и оптимизаций.

А подвести научное обоснование всему этому вы сможете? Или это как обычно, попытка выдачи желаемого за действительное? Вон open64 показал что в одном конкретном тесте можно и шланга и гнутый си раза в три натянуть. Но это видимо злостная оптимизация под конкретный процессор. Такой код не будет работать на другом проце, что резко снижает полезность фичи.

>> растопырить пальчики в стиле "после 2 недель пересборки всех программ я
>> получил прирост производительности на целые 2%" уже не получится.
> В данном случае ситуация обратная: GCC компилирует хоть и не быстро, но
> производит довольно шустрый код. Однако это не значит, что ради нескольких
> процентов общего быстродействия нужно откомпилировать всё ПО с помощью GCC и
> потратить на это неделю.

Так ни один нормальный человек и не компилит все ПО. Не тратя на это ни день ни неделю. Это удел только сирых и убогих, у которых почему-то еще нет пакетных менеджеров да красноглазых задротов готовых ради 2% сношаться неделю. Такие еще судорожно перекомпиливают ядро, осознав что в нем нету модуля для только что воткнутой флехи принесенной другими людьми, потому что в погоне за экономией аж 10кб кода он прибил соответствующий модуль.

> Уж лучше потратить три дня для компиляции ПО с помощью Clang/LLVM,
> но получить работающий код РАНЬШЕ.

А еще лучше не страдать этим онанизмом и поставить себе за 20 минут систему с бинарными пакетами. Сэкономив себе от трех дней до недели геморроя неизвестно зачем. А зачем мне пересобирать весь софт самолично? Я что, собираюсь выпускать свой дистр и майнтенансить в нем все пакеты? Или чем таким либрофис собранный мной лично будет лучше либрофиса из пакета, при условии что я не разработчик либры и поэтому ничего в нем не менял?

>> в результате будет обгонять даже стоковая убунта с дефолтными настройками у
>> самого последнего хомячка, который вообще не знает что такое компилятор.
> Как на десктопе измерить быстродействие десктопных программ и сравнить,
> скажем, GNOME-Mplayer с кодеками, собранный Clang, и GNOME-Mplayer
> с кодеками, собранный GCC 4.5.x?

Бенчмаркать сам gnome-mplayer смысла довольно мало. Это лишь оболочка для сосиски. А мплеер (скорость работы которого и роялит) забенчить можно примерно так: пустить декод с максимальной скоростью и сравнить достигаемые FPS-ы (man mplayer, в районе -benchmark и связанных с ним опций). С -vo null есть все шансы забенчить забористость кодека :).Можно и на MEncoder погонять транскодирование формата в формат, движок с кодеками тоже мплееровский.

> Лично я не представляю, какие показатели быстродействия должны приниматься в расчёт.

В конечном итоге роялит максимальный FPS который можно выжать. Если он заведомо больше нужного - нагрузка на CPU (вой кулера на проце вкалывающем на пределе возможностей тоже мало кого радует). В чем прикол мерять максимальный FPS? На тяжелых мувиках мы или укладываемся в реалтайм с их FPSом, или нет. Лучше уложиться, потому что слайдшоу выглядит как-то, гм, не очень. А дропнуть кадр если ну никак не успеваем без сильного ущерба для качества картинки можно не всегда и не во всех кодеках. Поэтому если в реалтайм не уложиться, тяжелый мувик на интенсивной сцене может немало разочаровать.

А так - чем быстрее плеер, тем более ядреный мувик он осилит софтварно. Тем более что хардварное акселерирование мало того что очень капризно к формату потока, так поди еще и отсутствует в опенке как класс.

> Пробовал. Собирал и тем, и этим, и GCC 4.2.2. Вроде всё
> одинаково реагирует на мышь и нажатие клавиш клавиатуры, воспроизведение везде
> одинаковое — без тормозов.

Не умеете вы плееры бенчмаркать. См. выше как можно побенчить именно кодеки. На самом деле - достаточно любопытный бенч, на который вполне любопытно было бы натравить все три сабжевых компилера и посмотреть кто кого и где. Правда есть подозрение что поскольку ломовую работу часто выполняют асмовые вставки, отличия могут быть не столь уж драматичны, поскольку если человек явно указал что разложить асм вот так - тут оптимизатор компилера как-то не имеет правов рыпаться. Но тем не менее, на участках между горячими кусками компилер наверное может сколько-то процентов отыграть. Хотя основной отыгрыш разумеется в горячих кусках (замена сишного кода на асм дает прирост буквально в разы).

Еще кстати дарю идею: можно качнуть vp8 и x264 и забенчить и их. У них есть свои утилитки-энкодеры, относительно простые, консольные. Тоже достаточно любопытно в принципе посмотреть на соотношения скоростей. Фороникс какие-то странные и не сильно жизненные задачи выбирает. Ну вот например нахрена б вам в повседневной жизни c-ray? Ну и мне он примерно туда же :)

Ответить | Правка | Наверх | Cообщить модератору

81. "Сравнение производительности компиляторов GCC 4.6, LLVM/Clan..."  +/
Сообщение от iZEN (ok), 13-Ноя-11, 09:06 
>>> Да блин, кого эта скорость компиляции волнует?
>> Меня.
> А ты вообще на яве программируешь вроде? :)

Уже нет. А что?

>> Для систем с непрерывной интеграцией изменений важна высокая скорость
>> компиляции исходного кода.
> Я вроде просил задротов помешаных на пересборке всей системы с поводом и
> без не беспокоиться.

Дык, сишноориентированные системы до сих пор не развились до уровня бинарной модульности OSGi или хотя бы EJB. Всё у них какие-то "деревянные" зависимости от libjpeg, libpng и icu, что при изменении минорной версии этих библиотек весь десктоп нужно переколбашивать (пересобирать/ждать корректирующих обновлений всех зависимостей), а иначе работать ничего не будет. :))

> С ними и так все понятно - им
> по определению некуда время девать. И mission critical задач у них
> нет.

Так в том-то и дело, что некуда с подводной лодки деваться — у сишноориентированных систем нету тех технологий, что есть в Java, и ABI у ключевых библиотек нестабилен (что удивительно).

> Простите, если я разрабатываю библиотеку, пусть уж остальные сами перекомпиливают свои
> программы где им там надо и сколько надо с новой версией.
> Автор библы лопнет все программы пересобирать. Попробуй пересобрать для начала все
> программы использующие zlib? А зачем бы это тому кто поменял zlib?
> И динамическая линковка конечно же не комильфо?

В динамической линковке нестабильный ABI не отменяется — это к примеру по icu, jpeg, png. :))

>> Clang'у есть куда расти. GCC достиг потолка роста и оптимизаций.
> А подвести научное обоснование всему этому вы сможете? Или это как обычно,
> попытка выдачи желаемого за действительное?

Clang/LLVM УЖЕ интересен. GCC ЕЩЁ интересен. Разница, такая разница. ;)

>> Уж лучше потратить три дня для компиляции ПО с помощью Clang/LLVM,
>> но получить работающий код РАНЬШЕ.
> А еще лучше не страдать этим онанизмом и поставить себе за 20
> минут систему с бинарными пакетами.

Ага. И уповать на то, что мантейнеры всё собрали в лучшем виде, именно так, как тебе нужно. :)

> Сэкономив себе от трех дней до недели геморроя неизвестно зачем.
> А зачем мне пересобирать весь софт самолично?

"Зачем готовить дома на кухне, если можно пойти в ресторан МакДональдса и быстро поесть?"
Чтобы контролировать свои потребности в конкретном софте и его функциональности.

>> Лично я не представляю, какие показатели быстродействия должны приниматься в расчёт.
> В конечном итоге роялит максимальный FPS который можно выжать.

Ты латентный задрот?
Мне хватает того, что MPlayer собирается БЫСТРО и работает нормально.

Самоцель не то, чтобы всё работало максимально быстро, а то, чтобы всё собиралось БЫСТРО, без ненужных зависимостей (я выкинул из MPlayer ненужный мне FFMpeg) и работало ОПТИМАЛЬНО.

> Если он заведомо
> больше нужного - нагрузка на CPU (вой кулера на проце вкалывающем
> на пределе возможностей тоже мало кого радует). В чем прикол мерять
> максимальный FPS? На тяжелых мувиках мы или укладываемся в реалтайм с
> их FPSом, или нет. Лучше уложиться, потому что слайдшоу выглядит как-то,
> гм, не очень. А дропнуть кадр если ну никак не успеваем
> без сильного ущерба для качества картинки можно не всегда и не
> во всех кодеках. Поэтому если в реалтайм не уложиться, тяжелый мувик
> на интенсивной сцене может немало разочаровать.

Пусть разработчики кодеков меряют FPS'ы и тюнят свой код. Моё дело собрать и пользоваться ИХ кодом, либо НЕ собирать и НЕ пользовать им.


> Еще кстати дарю идею: можно качнуть vp8 и x264 и забенчить и
> их. У них есть свои утилитки-энкодеры, относительно простые, консольные. Тоже достаточно
> любопытно в принципе посмотреть на соотношения скоростей. Фороникс какие-то странные и
> не сильно жизненные задачи выбирает.

% pkg_info libvpx-0.9.7
Information for libvpx-0.9.7:

Comment:
VP8 Codec SDK


Required by:
gnome-mplayer-1.0.0_2
mplayer-1.0.r20110329_3


Description:
libvpx is the VP8 Codec SDK.

WWW:    http://www.webmproject.org/


% pkg_info x264-0.116.2076
Information for x264-0.116.2076:

Comment:
Library and tool for encoding H.264/AVC video streams


Required by:
libquicktime-1.2.3_1


Description:
x264 is a free library for encoding H.264/AVC (aka MPEG-4 Part 10)
video streams.

Encoder features
* CAVLC/CABAC
* Multi-references
* Intra: all modes (4x4 and 16x16 with all predictions)
* Inter P: all partitions (from 16x16 down to 4x4)
* Inter B: partitions from 16x16 down to 8x8 (including SKIP/DIRECT)
* Ratecontrol: constant quantizer, constant bitrate, or multipass ABR
* Scene cut detection

WWW:    http://www.videolan.org/x264.html

Ответить | Правка | К родителю #71 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру