我想提供我所说的消息来源,但我只是没有,这是我听到的。
有一次,一位编程教授告诉我,在某些特定的项目中,一些软件基准测试是针对.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中间代码?有人能在这些问题上启发我吗?
问候
下面是两个有趣的链接,它们比较了IronPython、Cpyhon和C#(以及其他一些链接):
很明显这是按照你教授告诉你的思路来做的。但正如你所知,这在很大程度上取决于你在使用什么。
区别主要是由于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之间的比较非常粗略,但是差距要小一些。
相关问题 更多 >
编程相关推荐