2009-11-07 2 views
12

Я бы хотел дать источники для того, что я говорю, но у меня их просто нет, это то, что я слышал.Как скорость ironpython сравнивается с другими языками .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? Может ли кто-нибудь просветить меня по этим вопросам?

Привет

+1

Когда вы написали тестовую программу и запустили ее, что вы заметили? Какие функции .Net вы хотите использовать? –

+0

Я не написал для него эталонную программу.Интересно, есть ли заметная разница в общем, но если слишком много зависит от того, какие функции вы используете, я полагаю, что нет. Мы пишем общее административное программное обеспечение для региональных компаний без больших требований к трафику, и я не думал в каком-то конкретном проекте, когда я спрашивал. Это (очень), вероятно, я не на техническом уровне, который у вас есть, но я видел некоторые тесты в Интернете, когда в большинстве элементов Python указан как медленнее, чем другие языки, и мне интересно, одинаково ли это для Python, чем для IronPython по отношению к .net Thxs для ответа – Pablo

+0

«В зависимости от того, какие функции вы используете», всегда верно. Общие критерии бесполезны. Какие особенности вас интересуют? Что мешает вам написать контрольный показатель между IPython и C# для этих функций? –

ответ

9

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

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

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

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

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

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

+1

«C# строго типизировано». Вы имеете в виду «статически типизированный»? Или "строго типизированные объявления переменных"? Связывание типа Python довольно сильно, но переменные являются динамическими. –

+0

Я имею в виду строго типизированные декларации, что, конечно же, позволяет компилятору приблизиться к окончательному результату в сборках, чем то, что может достичь Python из-за его утиного ввода. – RedGlyph

+0

К сожалению, тесты CPython vs. IronPython запускались либо только для одного раунда, либо в некоторых случаях определенно только * running * one round, что делает их очень сомнительными. –

1

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

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

+0

Я знаю, но то, что меня привлекает от Python, это позволяет вы можете написать меньше кода, кроме того, я думаю, вы не можете сделать это на C# без перезаписи (хотя и не совсем уверен) http://www.ironpythonresource.com/post/2008/08/23/IronPython-Dynamically-creating -объекты-и-binding-them-to-a-form.aspx – Pablo

+0

Возможно, в C# 4.0 с новыми функциями? – Pablo

+1

Как динамически типизированный язык Python, как правило, быстрее развивается, чем C#. Если вы используете IDE, например Wing, с intellisense и т. Д. Для Python, то вы получаете много того, что Visual Studio может предложить для C#. – fuzzyman

0

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

Смежные вопросы