Открыть список
Как стать автором
Обновить

Комментарии 12

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
> Конечно С++ Builder оказался чуть староват
Ага, а MS VS 2008 совсем новая штука? :) Брали бы уже от 2010-й студии компилятор.

К тому же глупо сравнивать С++ компиляторы на абстрактных тестах. В первую очередь важна поддержка фич языка, потом скорость компиляции. И вот где-то между ними должна быть оптимизация. Какой мне толк от супербыстрого компилятора, который далеко не всё умеет? Шифрование это, конечно, хорошо, но всё же недостаточно в рамках MFC/CLR/…
Ну так тут тест именно на возможность оптимизации по скорости. Если так учитывать, то можно тестировать на что угодно, от скорости разработки софта, до размера.
в 2010 почти все изменения касавшиесе компилятора обошли стороной С/С++, про него похоже в MS начинают медленно, но верно забывать. Потому т.к. сами занимаемся разработкой на плюсах пришлось отказаться от 2010, т.к. просто не поддерживал необходимый софт/библиотеки и тд.
Ошибочное мнение. Судя по личным впечатлениям в частности компилятор стал шустрее. Далее, в 2010-й студии как раз наоборот вспомнили о С++, например в 2008-й нововведений было существенно меньше. Так же, насколько я знаю, внесли много новинок в виду нового стандарта и переработали существующий STL. Всё это есть в блоге на msdn: msdn.microsoft.com/en-us/library/dd547188.aspx раздел «Visual C++ Development», а так же поиск С++ по странице покажет много новинок.

darkslesh: на самом деле как раз оптимизация и является тем сферическим понятием в тестах, которые в реальной жизни играют слабую роль. Например, разработчики серьёзных криптосистем либо другого софта, завязанного на тонны вычислений, вряд ли будут доверять компилятору оптимизацию, а сделают это сами по мере сил. В больших же приложениях намного более важны другие вещи, более высокоуровневые, потому как оптимизацией займутся опять же отдельно. Ну а для широкого сегмента «среднего» класса оптимизацией, судя по опыту, никто и не занимается, либо знаний не хватает, либо бюджетов, да и в софте «средней руки» никто и не думает об этом, частоты и память стоит дешевле.
Потому тесты на оптимизацию это такая себе сферическая писькомерка, которая в реальной жизни зависит от очень многих параметров и очень часто оптимизаторы дают сбой, чем несказанно «веселят» ожидавших чуда программистов.
Думаю, было бы полезно добавить командные строки запуска для каждого компилятора, потому что не вполне очевидно, что для вас означает «включена вся возможная оптимизация».
Нужно учитывать, что в разных компиляторах функции импортируются по-разному. Компилятор из MS Visual Studio 6.0 напрямую юзает Win32 API, а gcc импортирует функции из msvcrt.dll.
Если под «Включена вся возможная оптимизация» вы имели ввиду gcc -O3 -funroll-all-loops, то очевидно, почему GCC проиграл MS C++.

Командные строки компиляторов и код в студию.
Ох… Мне вот жутко узнать что такое «2. Включена вся возможная оптимизация.»

Для gcc и icc полно флагов подходящих под это определение. Да и в студии для сишного кода тоже много всего интересного по оптимизации есть. Причём не всегда очевидно какие флаги для каких задач использовать.

+ я не вижу самого тестируемого кода, чтобы можно было о чём-то говорить.

p.s. ИМХО, Статья не о чём. Если честно, сложилось впечатление, что школьные каникулы у кого-то затянулись.
> Включена вся возможная оптимизация.

Давайте я угадаю первые 50 параметров в GCC:
-fauto-inc-dec -fcprop-registers -fdce -fdefer-pop -fdelayed-branch -fdse -fguess-branch-probability -fif-conversion2 -fif-conversion -fipa-pure-const -fipa-profile -fipa-reference -fmerge-constants -fsplit-wide-types -ftree-bit-ccp -ftree-builtin-call-dce -ftree-ccp -ftree-ch -ftree-copyrename -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-forwprop -ftree-fre -ftree-phiprop -ftree-sra -ftree-pta -ftree-ter -funit-at-a-time -fthread-jumps -falign-functions -falign-jumps -falign-loops -falign-labels -fcaller-saves -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks -fdelete-null-pointer-checks -fexpensive-optimizations -fgcse -fgcse-lm -finline-small-functions -findirect-inlining -fipa-sra -foptimize-sibling-calls -fpartial-inlining -fpeephole2 -fregmove -freorder-blocks -freorder-functions -frerun-cse-after-loop -fsched-interblock -fsched-spec -fschedule-insns -fschedule-insns2 -fstrict-aliasing -fstrict-overflow -ftree-switch-conversion -ftree-pre -ftree-vrp -finline-functions -funswitch-loops -fpredictive-commoning -fgcse-after-reload -ftree-vectorize -fipa-cp-clone -fzero-initialized-in-bss
А что старый добрый Watcom уже не котируется? :)
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.