LINUX.ORG.RU

Вышел GCC 4.4.0

 ,


0

1

Хочется отметить следующие изменения, касающиеся поддержки языков Си и C++:

  • Опция -Wparentheses теперь позволяет легко обнаружить популярную ошибку, связанную с низким приоритетом побитовых операций «И» и «ИЛИ»
  • Опция -Wsequence-points теперь работает внутри условий if/while/for, и позволяет легко обнаружить неопределенное поведение, связанное с незнанием некоторыми неопытными программистами понятия sequence points
  • Улучшения в поддержке грядущего стандарта ISO C++0x, как со стороны компилятора, так и со стороны libstdc++
  • Возможность автоматической оптимизации циклов для более эффективного использования кэшей
  • Новый распределитель регистров, разработанный Владимиром Макаровым
  • Поддержка OpenMP 3.0

Начиная с версии GCC 4.4, планировалось изменить лицензию рантайм библиотеки. Поэтому GCC длительное время находился в «замороженном» состоянии, ожидая, пока FSF рассмотрит и одобрит новую лицензию. В результате разработчики уделили много времени устранению регрессий, и на данный момент имеется всего лишь 76 незакрытых багов.

>>> Подробности

Ответ на: комментарий от Sylvia

> сферический тест получится, Вы постоянно собираете с -О0 ?

В процессе разработки, если задалбывает дожидаться пересборки - да.

Manhunt ★★★★★
() автор топика
Ответ на: комментарий от Manhunt

>Очень сильно сомневаюсь. Думаю, что код из-под vc может быть заметно быстрее. Потому и хотелось бы знать результаты тестов.

Учитывай, что это было выложено на форуме официального сайта микрософта. Если бы vc++ реально на голову был бы лучше с оптимизациями полагаю это бы сразу отметили виндофилы.

Robotron
()
Ответ на: комментарий от Robotron

> По дефолту mingw рвёт vc++ в два(!) раза. Но это без оптимизаций.

Классно, спасибо за инфу. Похоже, лучше не парится с VS :)

Spectr ★★★
()

еще тесты производительности кода генерируемого GCC

навскидку бенчмарк с gzip (asm код отключен, только pure C)
компрессия 512 Mb, сборка -O2 -fomit-frame-pointer -march=pentium4
тест в каждом случае сделала 2 раза, брала лучший результат

3.4.6
Piped 512.00 MB in 00h00m31.46s: 16.26 MB/second
30.74user 0.18system

4.1.2
Piped 512.00 MB in 00h00m31.49s: 16.25 MB/second
30.76user 0.24system

4.2.4
Piped 512.00 MB in 00h00m33.09s: 15.47 MB/second
32.28user 0.24system

4.3.3
Piped 512.00 MB in 00h00m32.77s: 15.62 MB/second
32.09user 0.17system

4.4.0 snapshot 20090313
Piped 512.00 MB in 00h00m32.99s: 15.51 MB/second
32.38user 0.19system

Sylvia ★★★★★
()
Ответ на: комментарий от Manhunt

CFLAGS="-O0 -pipe"

1 SBU

4.3.3
real 1m7.308s
user 0m42.274s
sys 0m19.312s


4.4.0 snapshot 20090313
real 1m18.680s
user 0m52.997s
sys 0m20.162s


с Вашего позволения более старые компиляторы уже тестировать не буду

Sylvia ★★★★★
()
Ответ на: комментарий от Manhunt

-march=pentium4
включена у меня в спеках по умолчанию для
4.4.snapshot и 4.3.3

так что можете тоже считать что оно в CFLAGS

Sylvia ★★★★★
()
Ответ на: комментарий от Spectr

Насколько это достовенная инфа ??? ИМХО Если бы так было , мы все бы уже бы это знали . И все бы собиралось с mingw

graynder
()
Ответ на: комментарий от graynder

>Насколько это достовенная инфа ??? ИМХО Если бы так было , мы все бы уже бы это знали . И все бы собиралось с mingw

Сам посомтри и оцени насколько достоверно: http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/b992fdcc-5ad0-...

Robotron
()
Ответ на: комментарий от graynder

>А как вам TCC от Патрика Белларда , в сравнении с gcc 3.2 http://bellard.org/tcc/

Несомненно хорош(!), но ядро он пока(?) не компилит :(

Robotron
()

ps: тест с gzip - простой вариант оценить производительность кода на C,
но во-первых по одному тесту нельзя сделать однозначных выводов, во-вторых более новые версии выиграют на векторизации ( -ftree-vectorize ), в особенности 4.4.х за счет Graphite, в третьих ситуация с С++ может быть абсолютно иной..

Sylvia ★★★★★
()

> По дефолту mingw рвёт vc++ в два(!) раза. Но это без оптимизаций. >Классно, спасибо за инфу. Похоже, лучше не парится с VS :)

Тестил код, который на vc оказался примерно в 2 раза быстрее mingw. Сначала офигел, потом нашел причину - vc слинковал рантайм статически, чего mingw естественно сделать не мог. После того, как пересбрал в vc с динамическим рантаймом, стало примерно одинаково

Treex
()
Ответ на: комментарий от Treex

>Тестил код, который на vc оказался примерно в 2 раза быстрее mingw. Сначала офигел, потом нашел причину - vc слинковал рантайм статически, чего mingw естественно сделать не мог. После того, как пересбрал в vc с динамическим рантаймом, стало примерно одинаково

С оптимизациями кто быстрее?

Robotron
()

> Опция -Wsequence-points теперь работает внутри условий if/while/for, и позволяет легко обнаружить неопределенное поведение, связанное с незнанием некоторыми неопытными программистами понятия sequence points

Щито?

zabivator
()
Ответ на: комментарий от saahriktu

Писал в gcc багзиллу с указанием бага (лично мне мешающего очень сильно в переходе на новый оптимизированный компилятор) http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35294

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

gogi
()
Ответ на: комментарий от Orlusha

> 2. Там не ожидается ли нормальный 128-разрядный longdouble на интеле

В железе то оно поддержано или софтовыми методами эмулируется со всеми вытекающими ?

Reset ★★★★★
()
Ответ на: комментарий от ikm

>Ядро с -Os собирается по дефолту

откуда дровишки? пруфлинк на заявления дистрибутивщиков в студию

да и смысл -Os для ядра? оно и так без лишнего на флоп вполне может поместиться

black7
()
Ответ на: комментарий от Spectr

> Классно, спасибо за инфу. Похоже, лучше не парится с VS :)

в дебаге msvs делает кучу проверок, поэтому скорость в 10 раз ниже, но отладка за счет этого происходит быстрее.

Reset ★★★★★
()
Ответ на: комментарий от Sylvia

> если вам нужна разница в скорости сборки самим GCC...
> core2 2.0 Ghz

> make -j1

>

> 1 SBU / GCC 4.4.0- 20090313

> real 2m31.701s

> user 2m2.349s

> sys 0m23.108s

>

>

> 1 SBU / GCC 4.3.3

> real 1m50.255s

> user 1m22.115s

> sys 0m22.799s

>

> но ведь скорость работы самого компилятора не главное ? ) главное какой код получится


честно говоря это не совсем хорошо, точнее говоря совсем не хорошо, gcc и так тормоз редкий :(

lester ★★★★
()
Ответ на: комментарий от Robotron

> На этом сайте как-то ссылку давал на форум на сайте микрософта месяц назад, про сравнение mingw 4.3 и vc++. По дефолту mingw рвёт vc++ в два(!) раза. Но это без оптимизаций.

ох уж эти сказочники( подтасовщики ), если включить оптимизацию - код сгенеренный vc++ в среднем в 2-4 раза быстрее

lester ★★★★
()
Ответ на: комментарий от lester

> если включить оптимизацию - код сгенеренный vc++ в среднем в 2-4 раза быстрее

Какой конкретно код? Версии компиляторов, опции? Проверяли лично, или слышали где-то?

Manhunt ★★★★★
() автор топика
Ответ на: комментарий от lester

> ох уж эти сказочники( подтасовщики ), если включить оптимизацию - код сгенеренный vc++ в среднем в 2-4 раза быстрее

При этом выходит, что код, сгенеренный в VC++, быстрее даже чем ICC, в чём я оооочень сильно сомневаюсь...

Deleted
()
Ответ на: комментарий от Manhunt

> Какой конкретно код? Версии компиляторов, опции? Проверяли лично, или слышали где-то?

проверял лично

lester ★★★★
()
Ответ на: комментарий от Deleted

> При этом выходит, что код, сгенеренный в VC++, быстрее даже чем ICC, в чём я оооочень сильно сомневаюсь...

с icc не сравнивал - не скажу, а вот mingw vs vc++ делал замеры, т.к. нужна была максимальная скорость

lester ★★★★
()
Ответ на: комментарий от lester

>ох уж эти сказочники( подтасовщики ), если включить оптимизацию - код сгенеренный vc++ в среднем в 2-4 раза быстрее

Ага, сказочник, в 2-4, посмешил. Давай ещё жги

Robotron
()
Ответ на: комментарий от lester

> с icc не сравнивал - не скажу, а вот mingw vs vc++ делал замеры, т.к. нужна была максимальная скорость

Какая именно версия mingw? И с какими опциями собирал?

Deleted
()
Ответ на: комментарий от Manhunt

> С какими опциями gcc запускался? Версия gcc какая?

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

lester ★★★★
()
Ответ на: комментарий от Sylvia

>firefox 3.0.8 я с утра собрала, но сегфолтится при запуске

А ты хоть когда-нибудь от компа отходишь? :))))

Файрфокс, mplayer? qt firefox... Ж)

jackill ★★★★★
()
Ответ на: комментарий от Robotron

> Ага, сказочник, в 2-4, посмешил. Давай ещё жги

слушай, ламо, не хочешь верить - проверь сам, не хочешь проверять - молчи в тряпочку

lester ★★★★
()
Ответ на: комментарий от black7

$cat config-2.6.29-lu |grep OPTIMIZE_FOR_SIZ
CONFIG_CC_OPTIMIZE_FOR_SIZE=y

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

Кстати такое ядро ничуть не медленнее и на процессорах с коротким кешем может быть даже и быстрее

Sylvia ★★★★★
()
Ответ на: комментарий от lester

>слушай, ламо, не хочешь верить - проверь сам, не хочешь проверять - молчи в тряпочку

Смысла проверять нету, по твоим рассказам у тебя VC++ быстрее ICC, явная ложь. А что до скорости света не смог с оптимизировать свой виндофильный VC++?

Robotron
()
Ответ на: комментарий от saahriktu

>gcc (GCC) 4.5.0 20090327 (experimental)

я конечно понимаю что этот 4.5.0 фактически пока равен сегодняшнему же 4.4.0,
но скажите, стабильным чем-нибудь Вы вообще пользуетесь? Или все такое bleeding edge ?

Sylvia ★★★★★
()
Ответ на: комментарий от Robotron

> А что до скорости света не смог с оптимизировать свой виндофильный VC++?

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

lester ★★★★
()
Ответ на: комментарий от lester

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

бугагага, вообще-то вопрос был следующий смог ли ты с оптимизировать vc++ до скорости света. Но спасибо, что просветил что вопрос твоего личного виндофильства для тебя важен. можешь себе в профайле написать - "не считайте что я виндофил".

Robotron
()
Ответ на: комментарий от Robotron

> бугагага, вообще-то вопрос был следующий смог ли ты с оптимизировать vc++ до скорости света.

да - смог

> Но спасибо, что просветил


всегда пожалуйста

> можешь себе в профайле написать - "не считайте что я виндофил".


спасибо, ждал вашего разрешения

П.С. добавил тебя в игнор - можешь зря не распинаться

lester ★★★★
()
Ответ на: комментарий от lester

> бугагага, вообще-то вопрос был следующий смог ли ты с оптимизировать vc++ до скорости света.

>>да - смог

Тебе бы в шоу лучших врунов участвовать или в политику пойти...

>П.С. добавил тебя в игнор - можешь зря не распинаться

Каким образом, маркером на мониторе мой ник зарисовал?

Robotron
()
Ответ на: комментарий от Robotron

>По дефолту mingw рвёт vc++ в два(!) раза. Но это без оптимизаций.

Что-то не верится .
Года 2 назад читал статью сравнение ходовых компиляторов для винды ,
gcc , если мне не изменяет память занял последнее место ...
Что ещё бесит - до сих пор не поддерживается 4-ая ветка в mingw current,
можно конечно взять здесь http://www.tdragon.net но с ним даже Qt без
танцев с бубном не соберешь , из-за старого бага , который исправили
в 4-ой ветке .
Ну и поддержка WinCE тоже бы не помешала :-)

kitov ★★★
()
Ответ на: комментарий от Robotron

>слушай, ламо, не хочешь верить - проверь сам, не хочешь проверять - молчи в тряпочку

>Смысла проверять нету, по твоим рассказам у тебя VC++ быстрее ICC, >явная ложь. А что до скорости света не смог с оптимизировать свой >виндофильный VC++?

полгода назад мерял скорость между msvc2005 и icc 10, так вот разницы практически не было никакой, где то intel сдавал где то msvc, но разница была по времени слишком не значительной чтобы переходить на intel compiler, да и время компиляции у intel раза в 2 больше точно

acefsm
()
Ответ на: комментарий от lester

+1 mingw вооще в жопе сидит в плане сравнения с msvc, так как mingw использует старые версии gcc

acefsm
()
Ответ на: комментарий от Sylvia

>я конечно понимаю что этот 4.5.0 фактически пока равен сегодняшнему же 4.4.0,
>но скажите, стабильным чем-нибудь Вы вообще пользуетесь? Или все такое bleeding edge ?

стараюсь поддерживать систему в bleeding edge состоянии.
на данный момент у меня стабильное ядро (2.6.29) по причине отсутствия релиз кандидатов 2.6.30.

saahriktu ★★★★★
()
Ответ на: комментарий от acefsm

>полгода назад мерял скорость между msvc2005 и icc 10, так вот разницы практически не было никакой, где то intel сдавал где то msvc, но разница была по времени слишком не значительной чтобы переходить на intel compiler, да и время компиляции у intel раза в 2 больше точно

icc на тяжелом шаблонном коде не вылетает с INTERNAL COMPILER ERROR. Да и его intrinsic-функции могут наверно пригодиться.

Absurd ★★★
()
Ответ на: комментарий от Sylvia

Silvy Я компилю ядро делая сначала make noconfig а потом make menuconfig

Так что у меня все галочки вырублены в том числе и эта оптимизация

graynder
()
Ответ на: комментарий от Absurd

>icc на тяжелом шаблонном коде не вылетает с INTERNAL COMPILER ERROR. Да и его intrinsic-функции могут наверно пригодиться.

покажите мне код на котором msvc вылетает, а то я уже что только не использовал и spirit и mpl и lambda, зато отлично помню как gcc 3.4(вроде, либо 3.3) на lambda уходил в segfault

ps: нисколько не хочу обосрать и тому подобное в сторону gcc, просто это факты, то что gcc еще не дотягивает до уровня msvc и intel

acefsm
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.