Производительность языков PHP, Node JS, Java, Swift, C, GO, C++, Rust
Все мы любим, когда сайт или приложение работают быстро. Скорость также влияет на доходы компании. Есть сайт, на котором проводят сравнение производительности языков программирования. К сожалению, там нету общей таблицы, которая агрегирует все тесты удобно. Я запарсил все данные и делюсь с вами! В данных 834 теста.
Ну, достаточно очевидно получилось, что PHP всем проиграл, а Rust всех обошел. Но давайте посмотрим на конкуренцию близких языков в контексте их бизнес-задач.
Простые приложения и сайты — PHP, Node JSNode
JS значительно обошел PHP. Наверно, тут даже нечего обсуждать. Чаще всего решения именно на WordPress, Bitrix, Joomla, Drupal тормозят и уступают в производительности.
Высоконагруженные системы — Java, Swift, Go
В этой группе Go обошел всех остальных, за исключением одного теста. Go был разработан в Google как раз для замены языков в бэкенд-части, и он имеет множество удобных плюшек для многопоточных систем.
Системные близкие к железу — C, C++, Rust
В этой группе всех обошел Rust. Стоит отметить, что в фреймворках часто используются компоненты, написанные на этих языках.
Описание тестов
Это наборы бенчмарков, или тестовых заданий, которые часто используются для измерения производительности и сравнения различных языков программирования или реализаций алгоритмов. Вот их краткое описание:
binarytrees: Этот тест измеряет производительность создания бинарных деревьев и управления ими. Задача заключается в создании и последующем удалении узлов бинарного дерева.
fannkuchredux: Этот тест оценивает производительность вычисления «перестановок» и нахождения максимальной «обратной длины» для них. Он использует алгоритм обратного перебора для решения этой задачи.
fasta: Этот тест связан с генерацией последовательностей ДНК и их сравнением. Основная цель — измерить производительность строковых операций.
mandelbrot: Этот тест представляет собой вычисление множества Мандельброта, которое используется для создания изображений фракталов. Он проверяет производительность вычислений с плавающей запятой и графики.
nbody: Этот тест моделирует движение небесных тел в гравитационном поле. Он измеряет производительность вычислений в физических симуляциях.
spectralnorm: Этот тест оценивает производительность вычисления спектральной нормы матрицы. Он измеряет производительность линейной алгебры.
Другие интересные наши работы