Подтвердить что ты не робот

Как скорость ironpython сравнивается с другими языками .net?

Я хотел бы дать источники для того, что я говорю, но у меня их просто нет, это то, что я слышал.

Как только профессор программирования сказал мне, что некоторый программный бенчмаркинг, выполненный для .net vs Python в некоторых конкретных элементах, он дал отношение 5: 8 в пользу .NET. Это был его аргумент в пользу того, что Python не настолько медленнее, чем .NET.

Вот это, я хотел бы попробовать IronPython, так как я мог бы объединить веб-фреймворк, который я знаю больше всего (asp.net), с языком, который мне больше всего нравится (Python), и мне было интересно узнать о скорости программ в asp.net в Python по сравнению со скоростью программ в ASP.NET с VB.net или С#. Есть ли какой-то программный бенчмаркинг?

Кроме того, должны ли скорости IronPython по сравнению с другими языками .NET быть похожими, поскольку IronPython в отличие от Python должен компилироваться в промежуточном коде .NET? Кто-нибудь может рассказать мне об этих проблемах?

Привет

4b9b3361

Ответ 1

Вот две интересные ссылки с сравнениями между IronPython, CPython и С# (среди прочих):

  • CPython vs С# (Mono) тесты, основанные на нескольких программах, подробно описанных на сайте.
  • CPython vs IronPython тесты на основе PyStone и PyBench для версий 2.6.

Поэтому, по-видимому, это происходит так, как сказал вам ваш профессор. Но, как вы знаете, это зависит от того, что вы используете.

Разница в основном связана с динамическим характером объектов, используемых в Python, тогда как С# строго типизирован. Таким образом, IronPython использует еще один уровень (DLR - Dynamic Language Runtime) поверх того, с чего запускается С# (CLR - Common Language Runtime), чтобы устранить эту разницу.

Я обычно ненавижу цитировать статьи в Википедии, но это хорошая отправная точка: http://en.wikipedia.org/wiki/Dynamic_Language_Runtime

Теперь, чтобы вернуться к вашему проекту, действия, вероятно, будут в большей степени зависеть от ваших алгоритмов/эвристики - как вы запрашиваете базу данных, например, чем на языке. Если вы знакомы с веб-фреймворком и довольны им, рекомендуется придерживаться одной и той же среды, а не получать несколько процентов на то, что вам придется приручить в первую очередь. Это было бы не то же самое, если приложение было интенсивно загружено ЦП.

Ответ 2

Вы можете включить трассировку .net, которая выводит информацию о времени в нижней части страницы. Сделайте приложение в С#/.NET и приложение, использующее Python, и посмотрите на различия в сроках. Это даст вам окончательный ответ.

Честно говоря, я считаю, что вам лучше просто использовать С#, это "быстрее" для разработки, поскольку среда VS существует для вас, и она будет работать быстрее, поскольку ей не нужно использовать динамическое языковое исполнение.

Ответ 3

IronPython будет значительно медленнее, чем С#. Вы могли бы подумать о сравнении как очень грубо между CPython и C, но с небольшим разрывом.