@Espleth

Quick sort работает в c# почему-то быстрее, чем в с++. Разве не должно быть наоборот?

Написал qsort на с++ и точно такой же код на c#. В итоге один и тот же код на с++ работает в несколько раз медленнее, чем на c#. К примеру на с++ сортирует миллион элементов за секунды 1.5 (это с указателями, а если использовать векторы так вообще секунд 6), а на c# примерно за 0.5 сек. Почему так, ведь с++ должен работать быстрее, чем c#? Обе сортировки написаны в VS 13. Если надо скину код.
  • Вопрос задан
  • 2564 просмотра
Решения вопроса 1
Trrrrr
@Trrrrr
Во первых убедитесь, что вы скомпилировали в с++ в релизе.
Во вторых покажите ваш код на с++, я уверен, что смогу очень быстро показать вам что у вас тормозит и как минимум получить одинаковую скорость.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@lookid
Вы размеры смотрели файлов? C# получился в разы меньше? Вы уверены, что не выкрутили оптимизацию на полную? Или VS для C# не выкрутила сама? С++ же не для детей и дибилов по 18 лет. Расчет идет на то, что разработчик сам знает всё и сам всё настроит. Выкрутите /O3 и прочее. Или скомпилируйте в g++ с -O3. Существуют релизы разной степени дебажности. Скомпилировали на дефолтных настройках и паникуете, как-будто систему свергли. Если вы что-то узнали, то это не значит, что этого никто не знает. Конфиги, флаги? Где это всё?
Ответ написан
Комментировать
alexclear
@alexclear
A cat
Почему C++ должен работать быстрее, чем C#?
Как минимум, у C# эффективнее аллокатор, когда ему нужно выделить память, он просто сдвигает указатель занятой памяти выше по хипу.
Если элементов всего миллион, и они целочисленные, то до GC дело даже и не дошло ни разу.
Ответ написан
StrangeAttractor
@StrangeAttractor
Не должно. Доподлинно известно, что есть вещи, которые работают на Java быстрее, чем на C++ или C (особенно если запрограммированы "втупую", без хитроумных ручных оптимизаций и хаков на основе учёта никоуровневых особенностей машины), а на Scala - ещё быстрее. C# данном контексте, можно сказать, та же Java/Scala. Я даже не удивлюсь, если найдутся задачи, в производительности которых будет лидировать, к примеру, PHP.
Ответ написан
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
А если с библиотечным сравнить?
www.cplusplus.com/reference/cstdlib/qsort
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы