与其他.net语言相比,ironpython的速度如何?

2024-05-14 17:57:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我想提供我所说的消息来源,但我只是没有,这是我听到的。

有一次,一位编程教授告诉我,在某些特定的项目中,一些软件基准测试是针对.net与Python的,它给出了一个5:8的关系,而不是.net。这是他支持Python不比.NET慢得多的论点

在这里,我想尝试IronPython,因为我可以将我最熟悉的web框架(asp.net)与我最喜欢的语言(Python)结合起来,我想知道在Python中,asp.net中程序的速度与在VB.net或C#中,asp.net中程序的速度。在这方面有软件基准测试吗?

另外,与其他.NET语言相比,IronPython的速度是否应该相似,因为IronPython与Python不同,它必须编译成.NET中间代码?有人能在这些问题上启发我吗?

问候


Tags: 项目程序语言net软件关系编程基准
3条回答

下面是两个有趣的链接,它们比较了IronPython、Cpyhon和C#(以及其他一些链接):

  • CPython vs C#(Mono)benchmarks,基于网站上详细介绍的几个程序。
  • CPython对IronPythonbenchmarks,基于PyStone和PyBench,用于版本2.6。

很明显这是按照你教授告诉你的思路来做的。但正如你所知,这在很大程度上取决于你在使用什么。

区别主要是由于Python中使用的对象的动态特性,而C是强类型的。所以IronPython在运行C的基础上(CLR——公共语言运行时)又使用了一个级别(DLR——动态语言运行时)来解决这个差异。

我通常不喜欢引用维基百科的文章,但这是一个很好的起点:http://en.wikipedia.org/wiki/Dynamic_Language_Runtime

现在回到您的项目,性能可能更依赖于您的算法/启发式-例如,您如何查询数据库-而不是语言。如果您熟悉一个web框架并且对它感到满意,那么最好坚持使用相同的环境,而不是在必须首先驯服的东西上获得一些可能的百分比。当然,如果应用程序是CPU密集型的,那就不一样了。

您可以启用.net跟踪,它在页面底部输出计时信息。在C#/.Net中创建一个应用程序,使用Python创建一个应用程序,并查看时间上的差异。这将给你一个明确的答案。

老实说,我认为您最好使用C#,它的“更快”开发,因为VS环境已经为您准备好了,它将运行得更快,因为它不必使用动态语言运行时。

IronPython将比C#慢得多。您可以认为CPython和C之间的比较非常粗略,但是差距要小一些。

相关问题 更多 >

    热门问题