Как скорость ironpython сравнивается с other.net языки?

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

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

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

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

поздравления

3 ответов


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

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

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

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

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

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


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

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


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