Уважаемые 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 раз душ принять?