Как скорость 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, но с разрывом несколько меньше.