Performance 有可能衡量语言的表现吗?

Performance 有可能衡量语言的表现吗?,performance,programming-languages,Performance,Programming Languages,大多数语言都有许多不同的执行引擎吗 有可能衡量语言的表现吗 不是真的。这取决于你如何定义绩效以及你对绩效的重视程度。例如,如果你指的是“原始的cpu密集型计算工作”,当然,你可以用几种不同的语言编写一组算法,并在不同的硬件上进行测试,并测量运行时间。但总的来说,不可能说X语言的性能比Y语言好 大多数语言都有许多不同的执行引擎吗 你是说大多数语言都有虚拟机吗?我会说,不,不是今天。然而,许多新语言都是基于虚拟机的(或者基于一些现有的虚拟机,如JVM或.NET虚拟机) 有可能衡量语言的表现吗 不是真

大多数语言都有许多不同的执行引擎吗

有可能衡量语言的表现吗

不是真的。这取决于你如何定义绩效以及你对绩效的重视程度。例如,如果你指的是“原始的cpu密集型计算工作”,当然,你可以用几种不同的语言编写一组算法,并在不同的硬件上进行测试,并测量运行时间。但总的来说,不可能说X语言的性能比Y语言好

大多数语言都有许多不同的执行引擎吗

你是说大多数语言都有虚拟机吗?我会说,不,不是今天。然而,许多新语言都是基于虚拟机的(或者基于一些现有的虚拟机,如JVM或.NET虚拟机)

有可能衡量语言的表现吗

不是真的。这取决于你如何定义绩效以及你对绩效的重视程度。例如,如果你指的是“原始的cpu密集型计算工作”,当然,你可以用几种不同的语言编写一组算法,并在不同的硬件上进行测试,并测量运行时间。但总的来说,不可能说X语言的性能比Y语言好

大多数语言都有许多不同的执行引擎吗


你是说大多数语言都有虚拟机吗?我会说,不,不是今天。但是,许多新语言都是基于VM的(或基于某些现有VM,如JVM或.NET VM)。

您可以在此处查看SPEC提供的基准测试:


同时测试编译器和硬件是很常见的。

您可以在这里查看SPEC提供的基准测试:


将编译器和硬件一起测试是很常见的。

许多语言都没有执行引擎-整个动态/静态过程都围绕着这样一个事实,即动态功能可以将某些编程问题简化几个数量级-但您需要在运行时为此付费,因为事情必须被解决,通用LISP是最好的例子之一,它非常乐意处理数据和代码互换,但它不是一个完全的速度恶魔(反对本地编译C++在100%的工程时间已经被用来删除动态RQTs,LISP人,在你开始对我吼叫)

< P > 1)许多语言都有焦点区域——如果你知道PROlog,你将创建一个性能规则系统,比C++中的任何人都快很多。但是如果C++开发者花费10倍的时间,那么他们将拥有一个系统,可以在1/第十的情况下运行10倍的速度。 2) 您必须区分真正的编译语言(经典C++)、解释语言(经典LISP)、基于虚拟机的语言(Smalltalk、Pascal)和向用户展示虚拟机,但可以使用窥视孔优化(C#,Java)在主机上动态重新编译的新型混合语言-解释语言总是比本机编译语言慢-本机编译语言没有执行引擎,所有其他语言都有一种或另一种形式的执行引擎

3) “最快”的语言应该是本地机器代码——不是很容易移植,而且开发成本非常昂贵

4) 真正的问题是

  • 表达一个愿望需要多长时间 语言中的特殊问题
  • 需要多长时间来验证 问题的解决方案是正确的
  • 移动它需要多长时间 其他环境的解决方案
  • 解决方案的运行时是什么
考虑一下——我可以在几分钟内用Smalltalk编写一些程序,这需要我在C语言中花上几天时间才能取得同等的进展——现在Smalltalk程序比C语言程序运行得慢得多,但总的来说,我花在它上面的时间更少-


这个故事的寓意-语言是工具-为工作选择正确的工具

许多语言没有执行引擎-整个动态/静态的事情围绕着这样一个事实,即动态功能可以按数量级简化某些类型的编程问题-但您需要在运行时为此付费,因为事情必须被解决,通用LISP是最好的例子之一,它非常乐意处理数据和代码互换,但它不是一个完全的速度恶魔(反对本地编译C++在100%的工程时间已经被用来删除动态RQTs,LISP人,在你开始对我吼叫)

< P > 1)许多语言都有焦点区域——如果你知道PROlog,你将创建一个性能规则系统,比C++中的任何人都快很多。但是如果C++开发者花费10倍的时间,那么他们将拥有一个系统,可以在1/第十的情况下运行10倍的速度。 2) 您必须区分真正的编译语言(经典C++)、解释语言(经典LISP)、基于虚拟机的语言(Smalltalk、Pascal)和向用户展示虚拟机,但可以使用窥视孔优化(C#,Java)在主机上动态重新编译的新型混合语言-解释语言总是比本机编译语言慢-本机编译语言没有执行引擎,所有其他语言都有一种或另一种形式的执行引擎

3) “最快”的语言应该是本地机器代码——不是很容易移植,而且开发成本非常昂贵

4) 真正的问题是

  • 表达一个愿望需要多长时间 语言中的特殊问题
  • 需要多长时间来验证 问题的解决方案是正确的
  • 移动它需要多长时间 其他环境的解决方案
  • 解决方案的运行时是什么
考虑一下——我可以在几分钟内用Smalltalk编写一些程序,这需要我在C语言中花上几天时间才能取得同样的进展——现在Smalltalk程序比C语言运行得慢得多#