Итак, я написал очень простую программу на 8 разных языках программирования:

C, C++, Rust, Java, Javascript, Python, C#, F#

Все, что он делает, это просто сортирует входной текст построчно и записывает в выходной файл. Затем я записал # инструкции и время, необходимое для запуска для разных размеров ввода. Вот результат (условно вырезано условное обозначение):

Только из графиков мы можем получить некоторое представление

  • в целом # инструкции и время выполнения показывают очень хорошее согласование, т. е. чем меньше # инструкций, тем быстрее выполняется
  • некоторые языки довольно стабильны в отношении размера ввода, в то время как некоторые языки сильно колеблются. Это может вызывать беспокойство, если требуется стабильность/предсказуемость.
  • Некоторые языки (например, коричневый) имеют огромные начальные затраты. Экстраполируя первый график, кажется, что для запуска программы требуется около 2,5 миллиардов инструкций!
  • Самый медленный и самый быстрый различаются в 10 раз по количеству инструкций и в 6 раз по времени выполнения.

Можете ли вы угадать, какая программа соответствует какому цвету? "Отвечать"

Некоторые интересные выводы

  • C# и F# ведут себя совершенно по-разному. Это удивительно, учитывая, что оба используют .NET framework. Я ожидал, что они будут почти идентичны
  • Python быстрый, вероятно, потому что большая часть тяжелой работы выполняется библиотекой, которая реализована на C
  • Почему C++ медленнее C? Разве C++ не должен быть таким же быстрым, как C?
  • Почему Rust работает так быстро?
  • неудивительно, почему просмотр веб-страниц кажется таким вялым!