热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

IwouldliketogivesourcesforwhatImsayingbutIjustdonthavethem,itssomethingIheard.

I would like to give sources for what I'm saying but I just dont have them, it's something I heard.

我想为我所说的内容提供消息,但我没有它们,这是我听到的。

Once a programming professor told me that some software benchmarking done to .net vs Python in some particular items it gave a relation of 5:8 in favor of .NET . That was his argument in favor of Python not being so much slower than .NET

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

Here it's the thing, I would like to try IronPython since I could combine the web framework I know the most (asp.net) with the language I like the most (Python) and I was wondering about the speed of programs in asp.net in Python vs the speed of programs in ASP.NET with VB.net or C#. Is there any software benchmarking on this?

这就是问题,我想尝试IronPython,因为我可以将我最熟悉的Web框架(asp.net)与我最喜欢的语言(Python)结合起来,我想知道asp.net中程序的速度在Python中与使用VB.net或C#的ASP.NET程序的速度相比。有没有对此进行软件基准测试?

Also, shouldnt the speeds of IronPython compared to other .NET languages be similar, since IronPython unlike Python have to compile to the .NET intermediate code? Can someone enlight me on these issues?

另外,与其他.NET语言相比,IronPython的速度不同,因为IronPython不像Python那样必须编译成.NET中间代码吗?有人可以在这些问题上让我高兴吗?

Greetings

问候

3 个解决方案

#1


9  

Here are two interesting links with comparisons between IronPython, CPython, and C# (among others):

以下是两个有趣的链接,包括IronPython,CPython和C#(以及其他)之间的比较:

  • CPython vs C# (Mono) benchmarks, based on several programs detailed on the site.
  • CPython与C#(Mono)基准测试,基于网站上详述的几个程序。
  • CPython vs IronPython benchmarks, based on PyStone and PyBench, for versions 2.6.
  • 对于版本2.6,基于PyStone和PyBench的CPython与IronPython基准测试。

So apparently it does along the lines of what your professor told you. But as you know, it depends so much on what you are using.

显然,它确实与你的教授告诉你的一致。但是如你所知,这在很大程度上取决于你所使用的东西。

The difference is mainly due to the dynamic nature of the objects used in Python, whereas C# is strongly typed. So IronPython uses one more level (the DLR - Dynamic Language Runtime) on top of what C# is run from (the CLR - the Common Language Runtime), to resolve this difference.

差异主要是由于Python中使用的对象的动态特性,而C#是强类型的。因此,IronPython在运行C#(CLR - 公共语言运行时)之上再使用一个级别(DLR - 动态语言运行时)来解决这种差异。

I usually hate to cite Wikipedia articles, but this is a good starting point: http://en.wikipedia.org/wiki/Dynamic_Language_Runtime

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

Now to come back to your project, the performances will probably be more dependent on your algorithms/heuristics - how you query a database for example - than on the language. If you are familiar with a web framework and are happy with it, it's a good idea to stick with the same environment rather than gain a possible few percents on something you'll have to tame first. It wouldn't be the same if the application was CPU-intensive of course.

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

#2


1  

You could enable .net tracing, which outputs timing information at the bottom of the page. Make an app in C#/.Net and an app using Python and look at the differences in timing. That will give you a definitive answer.

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

In all honesty I think you're better off just using C#, it's "faster" to develop since the VS environment is there for you and it's going to run faster since it doesn't have to use the dynamic language runtime.

老实说,我认为你最好只使用C#,它的开发速度“更快”,因为VS环境适合你,而且它运行得更快,因为它不必使用动态语言运行时。

#3


0  

IronPython will be considerably slower than C#. You could think of the comparison as very roughly between CPython and C, but with the gap somewhat smaller.

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


推荐阅读
  • Unity3D引擎的体系结构和功能详解
    本文详细介绍了Unity3D引擎的体系结构和功能。Unity3D是一个屡获殊荣的工具,用于创建交互式3D应用程序。它由游戏引擎和编辑器组成,支持C#、Boo和JavaScript脚本编程。该引擎涵盖了声音、图形、物理和网络功能等主题。Unity编辑器具有多语言脚本编辑器和预制装配系统等特点。本文还介绍了Unity的许可证情况。Unity基本功能有限的免费,适用于PC、MAC和Web开发。其他平台或完整的功能集需要购买许可证。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • Mono为何能跨平台
    概念JIT编译(JITcompilation),运行时需要代码时,将Microsoft中间语言(MSIL)转换为机器码的编译。CLR(CommonLa ... [详细]
  • Java编程思想一书中第21章并发中关于线程间协作的一节中有个关于汽车打蜡与抛光的小例子(原书的704页)。这个例子主要展示的是两个线程如何通过wait ... [详细]
  • Opencv提供了几种分类器,例程里通过字符识别来进行说明的1、支持向量机(SVM):给定训练样本,支持向量机建立一个超平面作为决策平面,使得正例和反例之间的隔离边缘被最大化。函数原型:训练原型cv ... [详细]
  • 动量|收益率_基于MT策略的实战分析
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了基于MT策略的实战分析相关的知识,希望对你有一定的参考价值。基于MT策略的实战分析 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • C# 7.0 新特性:基于Tuple的“多”返回值方法
    本文介绍了C# 7.0中基于Tuple的“多”返回值方法的使用。通过对C# 6.0及更早版本的做法进行回顾,提出了问题:如何使一个方法可返回多个返回值。然后详细介绍了C# 7.0中使用Tuple的写法,并给出了示例代码。最后,总结了该新特性的优点。 ... [详细]
  • 本文介绍了指针的概念以及在函数调用时使用指针作为参数的情况。指针存放的是变量的地址,通过指针可以修改指针所指的变量的值。然而,如果想要修改指针的指向,就需要使用指针的引用。文章还通过一个简单的示例代码解释了指针的引用的使用方法,并思考了在修改指针的指向后,取指针的输出结果。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • vb.net不用多线程如何同时运行两个过程?不用多线程?即使用多线程,也不会是“同时”执行,题主只要略懂一些计算机编译原理就能明白了。不用多线程更不可能让两个过程同步执行了。不过可 ... [详细]
  • vb.net面试题,请大家帮忙,谢谢。如果需要讲详细一点,那就加我QQ531412815第4题,潜在的错误,这里的错误不是常规错误,属于那种只有在运行是才知道的错误:Catchex ... [详细]
author-avatar
Jasonscw
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有