{"id":14293,"url":"\/distributions\/14293\/click?bit=1&hash=05c87a3ce0b7c4063dd46190317b7d4a16bc23b8ced3bfac605d44f253650a0f","hash":"05c87a3ce0b7c4063dd46190317b7d4a16bc23b8ced3bfac605d44f253650a0f","title":"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043d\u0435 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0432 \u043d\u0438 \u043a\u043e\u043f\u0435\u0439\u043a\u0438","buttonText":"","imageUuid":""}

Производительность языков 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: Этот тест оценивает производительность вычисления спектральной нормы матрицы. Он измеряет производительность линейной алгебры.

Другие интересные наши работы

0
Комментарии
-3 комментариев
Раскрывать всегда