Вдохновлен Вот этот статья.
Существует три мнения относительно производительности C++ и C#.
Те, кто знает (или думает, что знает) C++, считают, что C++ во много раз или даже на порядки быстрее.
Те, кто знает C++ и C#, знают, что для обычных задач производительность C++ не нужна, а там, где она нужна, код C# можно оптимизировать до невозможности.
Верхний предел оптимизации для C++ выше, чем для C#, но такие записи никому не нужны.
Те, кто знает только C#, никогда не испытывали проблем с его производительностью.
Люди из первой категории всегда пытаются доказать свою правоту.
При этом приведены примеры оптимизированного кода на C++ и максимально пессимизированного кода на C#.
Пример «типичного» сравнения
Любой программист, знающий C#, сразу увидит две ошибки: Вызовите GC.Collect, который отменяет любые оптимизации, сделанные во время выполнения для сбора мусора.
Использование цикла for, который не гарантирует исключения проверок границ при каждом доступе к массиву.
Однако на самом деле ни один C#-программист не будет писать код с помощью GC.Collect, а очень малая часть программистов допустит ошибку в цикле for. Какой смысл сравнивать гарантированно неэффективный код C# даже с обычным кодом C++? Просто чтобы доказать свою точку зрения.
Честное сравнение
Чтобы сравнивать языки честно, нужно сравнивать стандартный код на обоих языках.То есть такой код, который можно встретить в программах с вероятностью большей статистической погрешности.
Например, я буду использовать тот же пузырьковый вид массива.
Тесты для C++
В случае C++ я протестирую три варианта: Массив в стиле C (указатель) станд::массив станд::вектор Каждый тест будет запускаться 100 раз, а результат будет усреднен.Код измерения
Теги: #c++ #C++ #анализ производительности #разработка веб-сайтов #C++ #C++std::chrono::high_resolution_clock::duration measure(std::function<void()> f, int n = 100) {
-
#05 — И Целого Байта Мало... | Аниме
19 Oct, 24 -
Как Покупать В Кредит В Интернет-Магазинах?
19 Oct, 24 -
Краткая История Мошенничества В Видеоиграх
19 Oct, 24