我想为我所说的内容提供消息,但我没有它们,这是我听到的。
一位编程教授告诉我,在某些特定项目中对.net和Python进行了一些软件基准测试,它给出了5:8的关系,支持.NET。这是他支持Python不比.NET慢得多的论点
这就是问题,我想尝试IronPython,因为我可以将我最熟悉的Web框架(asp.net)与我最喜欢的语言(Python)结合起来,我想知道程序的速度。 Python中的asp.net与使用VB.net或C#的ASP.NET程序的速度相比。有没有针对此的软件基准测试?
另外,与其他.NET语言相比,IronPython的速度不应该相似,因为与Python不同的IronPython必须编译成.NET中间代码吗?有人可以在这些问题上引起我的兴趣吗?
问候
答案 0 :(得分:9)
这里有两个有趣的链接,包括IronPython,CPython和C#(以及其他)之间的比较:
显然,这与你教授告诉你的内容一致。但是如你所知,这在很大程度上取决于你所使用的东西。
差异主要是由于Python中使用的对象的动态特性,而C#是强类型的。因此,IronPython在运行C#(CLR - 公共语言运行时)之上再使用一个级别(DLR - 动态语言运行时)来解决这种差异。
我通常不想引用维基百科的文章,但这是一个很好的起点:http://en.wikipedia.org/wiki/Dynamic_Language_Runtime
现在回到你的项目,表演可能更依赖于你的算法/启发式 - 你如何查询数据库 - 而不是语言。如果您熟悉Web框架并对它感到满意,那么坚持使用相同的环境而不是获得可能首先要驯服的东西的几个百分点是个好主意。如果应用程序当然是CPU密集型的话,那就不一样了。
答案 1 :(得分:1)
您可以启用.net跟踪,它会在页面底部输出时序信息。使用Python在C#/ .Net和应用程序中创建应用程序并查看时间差异。这将给你一个明确的答案。
说实话,我认为你最好只使用C#,因为VS环境适合你而且开发速度更快,因为它不需要使用动态语言运行库,所以它运行得更快。
答案 2 :(得分:0)
IronPython将比C#慢得多。您可以将CPython与C之间的比较视为非常粗略,但差距会略小一些。