
Сравнение языков программирования по скорости и не только
А у вас так?
Выполняя разные проекты я пользуюсь разными языками и порой намного проще оформить идею в python нежли в лоб решать её на С++. Но любой уважающий себя девелопер думающий хотя бы немного наперёд о том в каких условиях будет работать его приложение, задаст сам себе вопрос "хватит ли мне скорости python или же лучше сразу писать на с++? А может мне скорость не критична, зато важно чтоб легко пис́алось и поддерживалось?". На хабре периодически проскакивают статьи, которые освещают замеры производительности в разных областях development'а, но централизованной информации по языкам не было (если только поиск меня не обманывает). Лично я в таких случаях иду на один очень полезный ресурс находящийся под патронатом Debian сообщества и получаю информативные графики статистики по достаточно большому спектру языков.
Подробнее
Проект называется незамысловато: «The Computer Language Benchmarks Game» и под его крышей собраны в основном самые популярные языки программирования. Там можно взять C++ и сравнить его с Python или, к примеру, со Scala. Получить статистику не только на сколько быстр тот или иной язык, но и увидеть потребление памяти программой на стандартных тестах и даже у кого размер кода больше/меньше.
Например С++ vs Python 3:

Из графика наглядно можно увидеть, что на некоторых тестах С++ резвее Python до 100 раз, а на некоторых всего раза в 2-3 (сами тесты конечно же предоставляются в виде исходных кодов). Потребление памяти у С++ в 3-6 раз меньше, а вот размер исполняемого кода у Python на выходе местами до 10 раз меньше.
Создатели этого проекта вполне ясно понимают, что производительность приложения вещь не постоянная и зависит от конкретной программы и задачи. Поэтому для тестов используется добрый десяток разных программок и алгоритмов чтобы статистика покрывала достаточно разные ситуации: там и бинарные деревья, и рекурсии, и прочие радости программистской жизни. Стоит только сказать, что тестов там достаточное количество, а в графиках показываются только основные и наиболее значимые.
Для особо скрупулёзных людей под графиками идут подробные таблицы с конкретными цифрами.
В довесок можно изучить влияние на производительность в сборках под 32 и 64 разрядные процессоры (если конечно компиляторы/интерпретаторы работают/генерируют код для соответствующих режимов).
Ну и конечно же ссылка на проект.
PS: Вполне возможно, что корифеи от девелопмента знают про этот ресурс, но тех кто не в курсе может быть огромное количество. Например многим менеджерам и руководителям проектов подобный ресурс попросту не известен, но может быть крайне необходим на стадии планирования проекта и позволит объективно принимать решения хватит им PHP или лучше сразу на java делать проект. А может и вовсе на C++.
Comments 125
Only users with full accounts can post comments. Log in, please.