Вы когда нибудь выбирали язык программирования для поставленной задачи? Или всегда делаете все на одном, своем любимом языке?
Меня эта тема интересует прежде всего из-за скорости обработки и количества потребляемой памяти веб приложениями, внешне делающими одно и то-же.
Прежде всего меня интересуют следующие языки: PHP, C#, Python и Java, так как, мне удалось познакомится только с этими серверными языками. Еще меня больше интересует производительность для Web. К сожалению, тесты являются математическими, по этому в обычном мире (мире штамповки сайтиков) цифры могут отличатся. Далее речь пойдет о тестах с сайта The Computer Language Benchmarks Game. Эти ребята единственные в сети, которых мне удалось найти, проделавшие огромную работу, оценив скорость и потребление памяти одних и тех-же алгоритмов на разных языках программирования.
На момент написания статьи тесты опубликованны для четырех машин, с операционной системой Ubuntu:
- Ubuntu™ : Intel® Q6600® quad-core
- x64 Ubuntu™ : Intel® Q6600® quad-core
- x64 Ubuntu™ : Intel® Q6600® one core
- Ubuntu™ : Intel® Q6600® one core
В 2008 году для тестирования использовались Gentoo : Intel® Pentium® 4 и Debian : AMD™ Sempron™. Сейчас эти тесты помечены как устаревшие.
Так как проект живет под маркой OpenSource. Исходные коды всех тестов общедоступны (пример binary-trees на Mono), и при желании можно попробовать тесты на своей машине. Проект позволяет сравнивать языки между собой (Mono vs CPython).
Согласно тестам, затраченное время выстроилось в следующую последовательность: Pyhon > PHP > C# Mono > Java6, а по памяти Java > PHP > Mono > Python. Вот такой вот парадокс. Еще интересный момент, который может быть актуальным на многоядерных серверах, это распределенность по процессорам, его тоже можно посмотреть на сайте.
На сайте также указано количество кода, которого потребовалось написать для реализации алгоритма. Мне кажется это не актуально, и не сильно влияет на скорость разработки, как например реализация разного рода дизайнеров и подсказки в IDE.
Метки:Linux, разработка, OpenSource, Python
Похожие статьи
- 21 января 2010 -- Mono 2.6.1 и VirtualBox (20)
- 4 августа 2008 -- ASP.NET trace как один из инструментов отладки. (0)
- 14 июня 2011 -- Обновление Mono до 2.10 на DreamHost (0)
- 24 июня 2011 -- Установка Mono 2.10.2 и MonoDevelop 2.6 на Debian (1)
- 12 марта 2009 -- ALT.NET или инструментарий Microsoft? (2)
30 января, 2010 at 15:40
Интересная заметка. Давно искал что-то подобное. Спасибо автору)
31 января, 2010 at 12:23
Ilyusha, спасибо за ссылку на сайт. Как и обещал, зашел)
5 февраля, 2010 at 15:58
Да. Интересное сравнение. Спасибо)
21 февраля, 2010 at 10:38
Интересно, буду ждать продолжения.
21 февраля, 2010 at 12:19
Программирование это отлично
23 февраля, 2010 at 16:20
Интересно было прочесть, узнал новое для себя