Уважаемые C#-сты, предлагаю начать второй раунд. В прошлом раунде первый ход был за вами (исходник, на котором измеряли "длину" у С++ и C#). Теперь ход со стороны С++, а именно — очень интересный результат
, полученный всемогучим remark-ом. В общей таблице результатов С# занял довольно грустное место. (Конечно же, мы знаем что Mono значительно хуже чем MS реализация, ага). Печально, что в общей таблице нет результатов C# компилятора от МС, потому что тестовый стенд организаторов крутится только под Linux. С счастью, моя домашняя машина изумительно сопала с тестовым стендом. Только ОС на ней Windows7 x64. Я скомпилировал в VS2008 пример на C# (Release сборка, параметры дефолтные), добавив рассчёт времени. Результат 9.8441886 sec. Что почти вчетверо лучше чем Mono, но всё-таки в 13.67 раз хуже, чем С++. С++ вариант я пересобирать (пока) не стал. Оставляю за собой право увеличить количество итераций с 6млн. до, скажем, 300млн. (Чтобы уменьшить погрешность, а то С++ и так быстрее чем за секунду отрабатывает). И поменять С++ компилятор на Интел. Ваш ход, господа.
21.09.09 14:00: Перенесено из 'Коллеги, улыбнитесь'
Здравствуйте, IID, Вы писали:
IID>Уважаемые C#-сты, предлагаю начать второй раунд. В прошлом раунде первый ход был за вами (исходник, на котором измеряли "длину" у С++ и C#). Теперь ход со стороны С++, а именно — очень интересный результат
, полученный всемогучим remark-ом. В общей таблице результатов С# занял довольно грустное место. (Конечно же, мы знаем что Mono значительно хуже чем MS реализация, ага). Печально, что в общей таблице нет результатов C# компилятора от МС, потому что тестовый стенд организаторов крутится только под Linux. С счастью, моя домашняя машина изумительно сопала с тестовым стендом. Только ОС на ней Windows7 x64. Я скомпилировал в VS2008 пример на C# (Release сборка, параметры дефолтные), добавив рассчёт времени. Результат 9.8441886 sec. Что почти вчетверо лучше чем Mono, но всё-таки в 13.67 раз хуже, чем С++. С++ вариант я пересобирать (пока) не стал. Оставляю за собой право увеличить количество итераций с 6млн. до, скажем, 300млн. (Чтобы уменьшить погрешность, а то С++ и так быстрее чем за секунду отрабатывает). И поменять С++ компилятор на Интел. Ваш ход, господа.
C# сугубо майкрософтовская технология. И это её основное ограничение. Если брать софт под MS то технология куда эффективнее чем C++ в плане трудозотрат на написание кода.
Здравствуйте, IID, Вы писали:
IID>Уважаемые C#-сты, предлагаю начать второй раунд.
сегодня имел возможность вспомнить студенческие годы и пописать на С++. Извращенный линком, автосвойствами, лямбдами, и простой до безобразия BCL (где всего-навсего один юникодный стринг против целого зоопарка на ++), отвыкший от указателей и борьбы за память я сильно кривился. Для офисно-прикладных программ, особенно под мс-технологии лучше курить шарп. Производительность? Если это не realtime обработка видео — то полсекунды подождут, это лучше чем увеличивать бюджет проекта раза в два и выращивать программистов по 3 года пока научатся делать исключительно умные ошибки.
If the message above is in English — means I'm wasting my work time and work computer to post here. No hard feelings
Здравствуйте, IID, Вы писали:
IID>Уважаемые C#-сты, предлагаю начать второй раунд. В прошлом раунде первый ход был за вами (исходник, на котором измеряли "длину" у С++ и C#). Теперь ход со стороны С++, а именно — очень интересный результат
, полученный всемогучим remark-ом. В общей таблице результатов С# занял довольно грустное место. (Конечно же, мы знаем что Mono значительно хуже чем MS реализация, ага). Печально, что в общей таблице нет результатов C# компилятора от МС, потому что тестовый стенд организаторов крутится только под Linux. С счастью, моя домашняя машина изумительно сопала с тестовым стендом. Только ОС на ней Windows7 x64. Я скомпилировал в VS2008 пример на C# (Release сборка, параметры дефолтные), добавив рассчёт времени. Результат 9.8441886 sec. Что почти вчетверо лучше чем Mono, но всё-таки в 13.67 раз хуже, чем С++. С++ вариант я пересобирать (пока) не стал. Оставляю за собой право увеличить количество итераций с 6млн. до, скажем, 300млн. (Чтобы уменьшить погрешность, а то С++ и так быстрее чем за секунду отрабатывает). И поменять С++ компилятор на Интел. Ваш ход, господа. Здесь
Здравствуйте, Muxa, Вы писали:
A>>... (исходник, на котором измеряли "длину" у С++ и C#) ... A>>А что там измерять? C++ на один символ длиннее.
M>а исходники на C# юникодные, так что у C# на 1 байт длиннее чем у С++.
В С++ нужно мето под завершающий нуль. Ничья: везеде по 4 байта.
Здравствуйте, Chorkov, Вы писали:
C>Здравствуйте, Muxa, Вы писали:
A>>>... (исходник, на котором измеряли "длину" у С++ и C#) ... A>>>А что там измерять? C++ на один символ длиннее.
M>>а исходники на C# юникодные, так что у C# на 1 байт длиннее чем у С++.
C>В С++ нужно мето под завершающий нуль. Ничья: везеде по 4 байта.
А как же юникодный префикс? 3 байта для UTF-8 или 2 — для UTF-16.
Здравствуйте, Muxa, Вы писали:
M>>>а исходники на C# юникодные, так что у C# на 1 байт длиннее чем у С++. C>>В С++ нужно мето под завершающий нуль. Ничья: везеде по 4 байта. M>
M>// c#
M> int l = "C#".Length * sizeof(char); // 4
M>
M>
M>// C++
M> int l = strlen("C++") * sizeof(char); // 3
M>
Здравствуйте, IID, Вы писали:
IID>Уважаемые C#-сты, предлагаю начать второй раунд. В прошлом раунде первый ход был за вами (исходник, на котором измеряли "длину" у С++ и C#). Теперь ход со стороны С++, а именно — очень интересный результат
Здравствуйте, Muxa, Вы писали:
A>>... (исходник, на котором измеряли "длину" у С++ и C#) ... A>>А что там измерять? C++ на один символ длиннее.
M>а исходники на C# юникодные, так что у C# на 1 байт длиннее чем у С++.
Ты уточни в каком именно Unicode?
в UTF8 — у С++ все равно длиннее
M>>а исходники на C# юникодные, так что у C# на 1 байт длиннее чем у С++. CC>Ты уточни в каком именно Unicode? CC>в UTF8 — у С++ все равно длиннее
уточняю: тот Юникод, в котором исходники сохраняются и интерпретируются по-умолчанию (не знаю можно ли это изменить в настройках, поэтому и добавил "по-умолчанию")
Здравствуйте, IID, Вы писали:
а почему C++ vs C#?
из этого теста видно, что С++ тоже никуда не годится, почти в 7 раз медленнее Си. Отсюда вывод: С++ — тормоз ещё тот.
Здравствуйте, Хвост, Вы писали:
Х>Здравствуйте, IID, Вы писали: Х>а почему C++ vs C#? Х>из этого теста видно, что С++ тоже никуда не годится, почти в 7 раз медленнее Си. Отсюда вывод: С++ — тормоз ещё тот.
Там много унылых реализаций написанных на С++. Их в рассчёт не берём. Т.к. написать тормознее особого ума не надо. Касательно ++ости: программа на Си, за мелкими исключениями, является так же программой на С++. Так что вывод неверен.
Здравствуйте, Chorkov, Вы писали:
C>В С++ нужно мето под завершающий нуль. Ничья: везеде по 4 байта.
Ну тогда в С# + sizeof(DWORD) на размер хранимой строки. :P
Приветствую, Niemand, вы писали:
N> сегодня имел возможность вспомнить студенческие годы и пописать на С++. Извращенный линком, автосвойствами, лямбдами, и простой до безобразия BCL (где всего-навсего один юникодный стринг против целого зоопарка на ++), отвыкший от указателей и борьбы за память я сильно кривился.
Руки потом долго с мылом мыл? Или пришлось 15 раз душ принять?
Здравствуйте, IID, Вы писали:
IID>Касательно ++ости: программа на Си, за мелкими исключениями, является так же программой на С++. Так что вывод неверен.
Осталось собрать С++ вариант под CLR
.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Здравствуйте, gear nuke, Вы писали:
GN>Здравствуйте, IID, Вы писали:
IID>>Касательно ++ости: программа на Си, за мелкими исключениями, является так же программой на С++. Так что вывод неверен.
GN>Осталось собрать С++ вариант под CLR
Зачем ? Там тот же самый .NET под капотом. С теми же тормозами (скорее всего).