Сравнение компиляторов
От: Аноним  
Дата: 13.07.05 11:51
Оценка:
http://www.citforum.ru/programming/C_comp/

Есть анализы "посвежее" ?
Re: Сравнение компиляторов
От: AndrewJD США  
Дата: 13.07.05 12:45
Оценка: +3
Здравствуйте, Аноним, Вы писали:

А>http://www.citforum.ru/programming/C_comp/


А>Есть анализы "посвежее" ?


offtop

Имхо, по этой ссылке не анализ, а полная лажа.

1) Как можно сравнить производительность используя разные версии STL?
2) Не указаны ключи компиляции для разных компилеров
3)

Кроме того, для Borland Builder была добавлена опция --fast-call — передача параметров через регистры (Intel Compiler, MSVC++ и gcc автоматически используют передачу параметров через регистры при использовании оптимизации по скорости

Повидимому, автор не совсем владеет предметом.

4) Анализ ассемблерного кода — это вообще шедевр .
5) Вывод тоже хорош: лучший компилер всех времен и народов — Borland Builder C++.
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Re: Сравнение компиляторов
От: 0xDEADBEEF Ниоткуда  
Дата: 13.07.05 13:25
Оценка: 32 (5) +1 :))) :))) :)
Здравствуйте, Аноним, Вы писали:

А>http://www.citforum.ru/programming/C_comp/


А>Есть анализы "посвежее" ?

Самый "свежий" анализ в бусте. Заходишь в "boost/config/compiler" и считаешь сколько
макросов с именем "BOOST_NO_????" определено для компилятора в интересующей версии.

В результате принимаешь решение является ли этот компилятор компилятором C++ или какого-то другого языка...
__________
16.There is no cause so right that one cannot find a fool following it.
Re[2]: Сравнение компиляторов
От: Lepsik Индия figvam.ca
Дата: 14.07.05 06:18
Оценка: -2
Здравствуйте, AndrewJD, Вы писали:

AJD>5) Вывод тоже хорош: лучший компилер всех времен и народов — Borland Builder C++.


Если бы еще кто-то был не только писателем а читателем и увидел строчку :

---В забеге принимают участие компиляторы Microsoft Visual C++ 6.0, Intel C++ Compiler 4.5, Borland Builder 6.0, MinGW (портированный gcc) 3.2.


надеюсь ни у кого нет сомнений что компилятор VC6.0 был гораздо хуже BB 6.0 ?
Re[3]: Сравнение компиляторов
От: Аноним  
Дата: 14.07.05 07:58
Оценка:
Здравствуйте, Lepsik, Вы писали:

L>надеюсь ни у кого нет сомнений что компилятор VC6.0 был гораздо хуже BB 6.0 ?


На моих задачах BB сливал вчистую и Intel 5.0 и VC6.0
Re[3]: Сравнение компиляторов
От: AndrewJD США  
Дата: 14.07.05 10:19
Оценка: +6
Здравствуйте, Lepsik, Вы писали:

L>надеюсь ни у кого нет сомнений что компилятор VC6.0 был гораздо хуже BB 6.0 ?


У меня есть
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Re[3]: Сравнение компиляторов
От: DrMom  
Дата: 14.07.05 14:58
Оценка:
Здравствуйте, Lepsik, Вы писали:

L>надеюсь ни у кого нет сомнений что компилятор VC6.0 был гораздо хуже BB 6.0 ?


У меня нет сомнений в обратном.
Re: Сравнение компиляторов
От: Carc Россия http://www.amlpages.com/home.php
Дата: 16.07.05 17:17
Оценка:
Здравствуйте, Аноним, Вы писали:

А>http://www.citforum.ru/programming/C_comp/


А>Есть анализы "посвежее" ?

Однажды в какому-то номере журнала "Программист" была статья Криса Касперски про сравнение компиляторов. Где то она и в сети есть, а скорее всего и в архиве www.programme.ru.
Имхо, очень неплохая стаьтя. Сравнивал он там WatCom 10, VC6 и какой-то, сори не помню, бильдер.
Очень неплохой анализ, куча информации и статистики по свертке функций, переменных, циклов, оптимизации потока данных, ну в общем на полную катушку по теории компиляции. Он даже про единое промежуточное представление что-то написал там. В общем, имхо весьма грамотная статья.
В общем как раз про именно ту часть компилятора которая называется front-end (разбор и все прочее, и генерация промежуточного представления). А кодогенерация имхо очень сильно будет зависеть от целевой плаформы — пример связки VC+Inter C++ Compiler это по моему, неплохо демонстрирует
Aml Pages Home
Re[2]: Сравнение компиляторов
От: raskin Россия  
Дата: 17.07.05 06:49
Оценка:
Carc wrote:
> А>Есть анализы "посвежее" ?
> Однажды в какому-то номере журнала "Программист" была статья Криса
> Касперски про сравнение компиляторов. Где то она и в сети есть, а скорее
> всего и в архиве www.programme.ru <http://www.programme.ru>.
"Программист" загнулся вместе с сайтом. Я поискал — не нашёл. Хотя на
полке оно у меня лежит.
> Имхо, очень неплохая стаьтя. Сравнивал он там WatCom 10, VC6 и какой-то,
> сори не помню, бильдер.
Потом в следующей статье других авторов эти же тесты были прогнаны на
gcc и watcom 11. Злыми поклонниками watcom/openWatcom.
> Очень неплохой анализ, куча информации и статистики по свертке функций,
> переменных, циклов, оптимизации потока данных, ну в общем на полную
> катушку по теории компиляции. Он даже про единое промежуточное
> представление что-то написал там. В общем, имхо весьма грамотная статья.
> В общем как раз про именно ту часть компилятора которая называется
> front-end (разбор и все прочее, и генерация промежуточного
> представления). А кодогенерация имхо очень сильно будет зависеть от
> целевой плаформы — пример связки VC+Inter C++ Compiler это по моему,
> неплохо демонстрирует
Было дело. В исходном тесте всех (увы) обогнал VC, иногда обгоняемый ICC.
Posted via RSDN NNTP Server 2.0 beta
Re[3]: Сравнение компиляторов
От: Lorenzo_LAMAS  
Дата: 17.07.05 15:56
Оценка:
Вот нашел два куска каких-то. Эти статьи?

http://www.insidepro.com/kk/029r.shtml
http://www.insidepro.com/kk/031/031r.shtml
Of course, the code must be complete enough to compile and link.
Re[3]: Сравнение компиляторов
От: Carc Россия http://www.amlpages.com/home.php
Дата: 23.07.05 10:49
Оценка:
Здравствуйте, raskin, Вы писали:

R>Carc wrote:

>> А>Есть анализы "посвежее" ?
>> Однажды в какому-то номере журнала "Программист" была статья Криса
>> Касперски про сравнение компиляторов. Где то она и в сети есть, а скорее
>> всего и в архиве www.programme.ru <http://www.programme.ru>.
R>"Программист" загнулся вместе с сайтом. Я поискал — не нашёл. Хотя на
R>полке оно у меня лежит.
можна заглянуть на "клуб Весельчак У" (имхо, shelek.club.ru но точно не помню). Там бывают Икс человек из админов (Гром, Ack еще кто-то) старого сайта "Программиста" — и какие то части форумов и архивов у них есть.
Aml Pages Home
Re[3]: Сравнение компиляторов
От: Tom Россия http://www.RSDN.ru
Дата: 23.07.05 11:50
Оценка:
L>надеюсь ни у кого нет сомнений что компилятор VC6.0 был гораздо хуже BB 6.0 ?
Нет, уж лучше вы к нам
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Народная мудрось
всем все никому ничего(с).
Re[3]: Сравнение компиляторов
От: Mr.Chipset Россия http://merlinko.com
Дата: 23.07.05 12:23
Оценка:
Здравствуйте, Lepsik, Вы писали:

L>Здравствуйте, AndrewJD, Вы писали:


AJD>>5) Вывод тоже хорош: лучший компилер всех времен и народов — Borland Builder C++.


L>Если бы еще кто-то был не только писателем а читателем и увидел строчку :


L>---В забеге принимают участие компиляторы Microsoft Visual C++ 6.0, Intel C++ Compiler 4.5, Borland Builder 6.0, MinGW (портированный gcc) 3.2.



L>надеюсь ни у кого нет сомнений что компилятор VC6.0 был гораздо хуже BB 6.0 ?


BB 6.0 это компилятор языка C++?
Наверное какой-то урезанной версии языка..
... << А писал я этот бред на RSDN@Home 1.1.4 stable rev. 510, под звуки Led Zeppelin — The Battle of Evermore>>
"Всё что не убивает нас, делает нас сильнее..."
Re: Сравнение компиляторов
От: adontz Грузия http://adontz.wordpress.com/
Дата: 23.07.05 12:59
Оценка:
Здравствуйте, Аноним, Вы писали:

А>http://www.citforum.ru/programming/C_comp/

А>Есть анализы "посвежее" ?

Дофига!
http://www.rsdn.ru/summary/590.xml
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[4]: Сравнение компиляторов
От: Lepsik Индия figvam.ca
Дата: 24.07.05 04:54
Оценка:
L>>надеюсь ни у кого нет сомнений что компилятор VC6.0 был гораздо хуже BB 6.0 ?
А>На моих задачах BB сливал вчистую и Intel 5.0 и VC6.0

ну тогда откомпилите такие строчки в vc6


void foo()
{
  char *val = __FUNC__;
  for(int i = 0; *val; i++)
  {
     *val ^= i; 
  }
  for(int i = 0; *val; i++)
  {
     *val ^= i; 
  }
}
Re[5]: Сравнение компиляторов
От: espider Россия  
Дата: 24.07.05 16:37
Оценка:
> L>>надеюсь ни у кого нет сомнений что компилятор VC6.0 был гораздо хуже BB 6.0 ?
> А>На моих задачах BB сливал вчистую и Intel 5.0 и VC6.0
>
> ну тогда откомпилите такие строчки в vc6
>
>
>
> void foo()
> {
>   char *val = __FUNC__;
>   for(int i = 0; *val; i++)
>   {
>      *val ^= i; 
>   }
>   for(int i = 0; *val; i++)
>   {
>      *val ^= i; 
>   }
> }
>

#define __FUNC__ __FUNCTION__

в VC7 откомпилил
Posted via RSDN NNTP Server 1.9
Re[6]: Сравнение компиляторов
От: Lepsik Индия figvam.ca
Дата: 25.07.05 20:32
Оценка:
Здравствуйте, espider, Вы писали:


E>в VC7 откомпилил


зачем мне VC2222 если сравнение идет про конкретные среды vc6 И bcb6

выйдет BCB.NET в ноябре тогда и сравнивать надо.
Re[7]: Сравнение компиляторов
От: espider Россия  
Дата: 25.07.05 22:56
Оценка:
> Здравствуйте, espider, Вы писали:
>
>
> E>в VC7 откомпилил
>
> зачем мне VC2222 если сравнение идет про конкретные среды vc6 И bcb6
>
> выйдет BCB.NET в ноябре тогда и сравнивать надо.
Ну если и VC6, возможно ли на bcb6 собрать exe (dll) размером не более 3 kb без CRTL. В VC6 возможно, для bcb6 нереально .
Попутно вопрос, почему bcb6 передает указатель this через стек, а не как vc6 через eax и что из них правельнее, то есть ближе к стандарту (ansi)? P.S.: Стоит отметить, что vc7 в этой части пошел по стопам bcb6
Posted via RSDN NNTP Server 1.9
Re[8]: Сравнение компиляторов
От: adontz Грузия http://adontz.wordpress.com/
Дата: 25.07.05 22:58
Оценка:
Здравствуйте, espider, Вы писали:

E>Ну если и VC6, возможно ли на bcb6 собрать exe (dll) размером не более 3 kb без CRTL. В VC6 возможно, для bcb6 нереально .


А зачем решать надуманные задачи?

E>Попутно вопрос, почему bcb6 передает указатель this через стек, а не как vc6 через eax и что из них правельнее, то есть ближе к стандарту (ansi)? P.S.: Стоит отметить, что vc7 в этой части пошел по стопам bcb6


Стандарт на этот счёт не распространяется, а VC6 и VC7.x и VC8, короче все VC, передают this в регистре ECX
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[7]: Сравнение компиляторов
От: Cyberax Марс  
Дата: 26.07.05 10:49
Оценка:
Lepsik wrote:

> E>в VC7 откомпилил

> зачем мне VC2222 если сравнение идет про конкретные среды vc6 И bcb6
> выйдет BCB.NET в ноябре тогда и сравнивать надо.

А можно что-нибудь посущественнее найти, чем поведение одного
_НЕСТАНДАРТНОГО_ макроса?

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[8]: Сравнение компиляторов
От: gbt Россия  
Дата: 26.07.05 11:03
Оценка:
Hello, Cyberax, you wrote:

> А можно что-нибудь посущественнее найти, чем поведение одного

> _НЕСТАНДАРТНОГО_ макроса?
Существенным здесь было определение двух одноименных переменных i в циклах for в
одном блоке:

>
> void foo()
> {
>   char *val = __FUNC__;
>   for(int i = 0; *val; i++)
>   {
>      *val ^= i; 
>   }
>   for(int i = 0; *val; i++)
>   {
>      *val ^= i; 
>   }
> }
>


--
Igor Polyakov — igorpol_gbt (at) mail (dot) ru
Posted via RSDN NNTP Server 1.9
Re[9]: Сравнение компиляторов
От: AndrewJD США  
Дата: 26.07.05 11:10
Оценка:
Здравствуйте, gbt, Вы писали:

>> А можно что-нибудь посущественнее найти, чем поведение одного

>> _НЕСТАНДАРТНОГО_ макроса?
gbt>Существенным здесь было определение двух одноименных переменных i в циклах for в
gbt>одном блоке:

Насколько я помню, когда были первые версии VC стандарт еще жестко не определял видимость переменных внутри блока.
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Re[9]: Сравнение компиляторов
От: Cyberax Марс  
Дата: 26.07.05 11:21
Оценка: 1 (1)
gbt wrote:

>> А можно что-нибудь посущественнее найти, чем поведение одного

>> _НЕСТАНДАРТНОГО_ макроса?
> Существенным здесь было определение двух одноименных переменных i в
> циклах for в
> одном блоке

#define for if(0);else for

И будет вам счастье....

Это не было ошибкой в 98 году, так как Стандарта тогда еще тоже не было.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[10]: Сравнение компиляторов
От: gbt Россия  
Дата: 26.07.05 11:28
Оценка:
Hello, AndrewJD, you wrote:

> Насколько я помню, когда были первые версии VC стандарт еще жестко не

> определял видимость переменных внутри блока.
Читаем

C++ Standard Noncompliance Issues with Visual C++ 6.0
ID: Q243451
...
Scope of variable declared in the for loop initialization (6.5.3) not as per standard.
Q167748 PRB: Variable Scope in for-statement Extends Beyond Loop...


SYMPTOMS
If you declare the same variable in two different for-statements, the following error may appear:

Test.cpp(4) : error C2374: 'i' : redefinition; multiple initialization

CAUSE
The scope of a variable declared in the initialization part of a "for" loop is given local scope, as if it had been declared immediately prior to the for-statement



--
Igor Polyakov — igorpol_gbt (at) mail (dot) ru
Posted via RSDN NNTP Server 1.9
Re[11]: Сравнение компиляторов
От: Cyberax Марс  
Дата: 26.07.05 11:43
Оценка:
gbt wrote:

>> Насколько я помню, когда были первые версии VC стандарт еще жестко не

>> определял видимость переменных внутри блока.
> Читаем
> *C++ Standard Noncompliance Issues with Visual C++ 6.0*

Еще раз: когда VC6 разрабатывался — Стандарта еще _НЕ_ _БЫЛО_. Более
того, Стандарт появился только через полгода после релиза VC6. Для
Стандарта 92 года поведение VC6 — правильно. Ну и это неправильное
поведение фиксится простым макросом.

Найдите, наконец-то, настоящие недостатки, а не мелкие придирки.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[12]: Сравнение компиляторов
От: WolfHound  
Дата: 26.07.05 13:57
Оценка:
Здравствуйте, Cyberax, Вы писали:

>> Читаем

>> *C++ Standard Noncompliance Issues with Visual C++ 6.0*
C>Еще раз: когда VC6 разрабатывался — Стандарта еще _НЕ_ _БЫЛО_.
К томуже лично мне важнее стабильность back-end'а ибо странности front-end'а вылавливаются на этапе компиляции, а вот глюки кодогенератора которые к томуже еще и зависят от фазы луны куда страшнее.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[7]: Сравнение компиляторов
От: espider Россия  
Дата: 26.07.05 23:36
Оценка:
а теперь в пользу bcb6:
yна уровне линкера реализована отложенная загрузка dll, чего не нашел в vc6 .
Posted via RSDN NNTP Server 1.9
Re[8]: Сравнение компиляторов
От: Павел Кузнецов  
Дата: 27.07.05 00:04
Оценка:
espider,

> а теперь в пользу bcb6:

> yна уровне линкера реализована отложенная загрузка dll, чего не нашел в vc6 .

Мимо.

http://msdn.microsoft.com/library/en-us/vccore/html/vcconlinkersupportfordelayedloadingofdlls.asp

Beginning with Visual C++ 6.0, when statically linking with a DLL, the linker provides options to delay load the DLL until the program calls a function in that DLL.


Более того, подозреваю, что это в Борланде было "срисовано" с VC++6.
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re: Сравнение компиляторов
От: c-smile Канада http://terrainformatica.com
Дата: 27.07.05 00:24
Оценка:
Здравствуйте, Аноним, Вы писали:

А>http://www.citforum.ru/programming/C_comp/


А>Есть анализы "посвежее" ?


В последнем номере CUJ как раз статья
http://www.cuj.com/documents/s=8188/cuj0507bruckschlegel/
Intel C++ / MS C++ / IBM Java / SUN Java / C# и Mono
Re[8]: Сравнение компиляторов
От: Whistler Россия Блог на GotDotNet.ru
Дата: 27.07.05 05:08
Оценка:
Здравствуйте, espider, Вы писали:

>> Здравствуйте, espider, Вы писали:

>>
>>
>> E>в VC7 откомпилил
>>
>> зачем мне VC2222 если сравнение идет про конкретные среды vc6 И bcb6
>>
>> выйдет BCB.NET в ноябре тогда и сравнивать надо.
E>Ну если и VC6, возможно ли на bcb6 собрать exe (dll) размером не более 3 kb без CRTL. В VC6 возможно, для bcb6 нереально .

То что в BCB нельзя откомпилировать файл размером размером не более 3кб — это хлубокая чушь и не знание вопроса.
Я не фанат билдера и реально не считаю его лучше того же VC, но я за честность и объективность.
Обкакивать — это не красиво.

E>Попутно вопрос, почему bcb6 передает указатель this через стек, а не как vc6 через eax и что из них правельнее, то есть ближе к стандарту (ansi)?

E>P.S.: Стоит отметить, что vc7 в этой части пошел по стопам bcb6

Раз понел по стопам, значит инженеры Borland были правы, сделав передачу через стек.
Re[12]: Сравнение компиляторов
От: Аноним  
Дата: 27.07.05 05:26
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Найдите, наконец-то, настоящие недостатки, а не мелкие придирки.


Любой чих с шаблонами

#include <iostream>

template<int i> void f() { std::cout << i << std::endl; }

int main( int argc, char* argv[] )
{
  f<1>();
  f<2>();
  return 0;
}


На выходе

2
2
Re[9]: Сравнение компиляторов
От: espider Россия  
Дата: 27.07.05 13:32
Оценка:
> E>Ну если и VC6, возможно ли на bcb6 собрать exe (dll) размером не более 3 kb без CRTL. В VC6 возможно, для bcb6 нереально .
>
> То что в BCB нельзя откомпилировать файл размером размером не более 3кб — это хлубокая чушь и не знание вопроса.
> Я не фанат билдера и реально не считаю его лучше того же VC, но я за честность и объективность.
> Обкакивать — это не красиво.

Мда... Не знание вопроса скорее с вашей стороны. Даже если вы и соберете бесполезную пустышку в bcb6 ее размер будет около 7к (минимум что смог получить), НО это с привязкой к динамик RTL (cc3260.dll) рамером ~1.5Mb!!! Если же собирать без RTL (в статике), то она автоматом линкуется к модулю и тут уж рзмер менее 50к вы неполучите. Речь идет о поддержке компилятором сборки без RTL вообще как в статике так и динамике, т.е. только WIN API и ничего лишнего.

> E>Попутно вопрос, почему bcb6 передает указатель this через стек, а не как vc6 через eax и что из них правельнее, то есть ближе к стандарту (ansi)?

> E>P.S.: Стоит отметить, что vc7 в этой части пошел по стопам bcb6
>
> Раз понел по стопам, значит инженеры Borland были правы, сделав передачу через стек.
Внимательней надо читать ветку. Выше меня уже поправили — в VC this передается через ECX, и ето так, проверено!
Posted via RSDN NNTP Server 1.9
Re[13]: Сравнение компиляторов
От: Cyberax Марс  
Дата: 27.07.05 13:49
Оценка:
wrote:

> На выходе

>
>2
>2
>
1
2

Что я делаю не так? Компилятор vc6+sp4.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[14]: Сравнение компиляторов
От: Аноним  
Дата: 27.07.05 14:46
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>
C>1
C>2
C>

C>Что я делаю не так? Компилятор vc6+sp4.

У меня vc6+sp5. Debug/Release без разницы. Пустой консольный Win32 проект. Все опции по умолчанию. Добавляю один файл main.cpp
2
2

Подобное было не только у меня. Ещё по крайней мере у двоих знакомых повторялось.
Re[15]: Сравнение компиляторов
От: CreatorCray  
Дата: 28.07.05 05:21
Оценка:
Здравствуйте, Аноним, Вы писали:

А>У меня vc6+sp5. Debug/Release без разницы. Пустой консольный Win32 проект. Все опции по умолчанию. Добавляю один файл main.cpp


Аналогичен до безобразия... Но все же:

1
2
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[15]: Сравнение компиляторов
От: Cyberax Марс  
Дата: 28.07.05 06:15
Оценка:
wrote:

> C>Что я делаю не так? Компилятор vc6+sp4.

> У меня vc6+sp5. Debug/Release без разницы. Пустой консольный Win32
> проект. Все опции по умолчанию. Добавляю один файл main.cpp
>
>2
>2
>
> Подобное было не только у меня. Ещё по крайней мере у двоих знакомых
> повторялось.

sp5 я ставить не хочу, так что тестировать негде.

А вообще, насчет темплейтов лучше бы поклонники Borland'а молчали в
тряпочку — в Борланде нет даже friend-темплейтов. А уж багов в
реализации шаблонов вообще куча — поищите в коде Boost'а по слову BORLAND.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.