Итак, я написал очень простую программу на 8 разных языках программирования:
C, C++, Rust, Java, Javascript, Python, C#, F#
Все, что он делает, это просто сортирует входной текст построчно и записывает в выходной файл. Затем я записал # инструкции и время, необходимое для запуска для разных размеров ввода. Вот результат (условно вырезано условное обозначение):
Только из графиков мы можем получить некоторое представление
- в целом # инструкции и время выполнения показывают очень хорошее согласование, т. е. чем меньше # инструкций, тем быстрее выполняется
- некоторые языки довольно стабильны в отношении размера ввода, в то время как некоторые языки сильно колеблются. Это может вызывать беспокойство, если требуется стабильность/предсказуемость.
- Некоторые языки (например, коричневый) имеют огромные начальные затраты. Экстраполируя первый график, кажется, что для запуска программы требуется около 2,5 миллиардов инструкций!
- Самый медленный и самый быстрый различаются в 10 раз по количеству инструкций и в 6 раз по времени выполнения.
Можете ли вы угадать, какая программа соответствует какому цвету? "Отвечать"
Некоторые интересные выводы
- C# и F# ведут себя совершенно по-разному. Это удивительно, учитывая, что оба используют .NET framework. Я ожидал, что они будут почти идентичны
- Python быстрый, вероятно, потому что большая часть тяжелой работы выполняется библиотекой, которая реализована на C
- Почему C++ медленнее C? Разве C++ не должен быть таким же быстрым, как C?
- Почему Rust работает так быстро?
- неудивительно, почему просмотр веб-страниц кажется таким вялым!