语言表现

x4m*_*x4m 1 c# c++ performance f#

每天的讨论,如"C#vs Java性能","F#vs C#性能","C vs C++","本机C++ vs C#"总是很有趣.就像idiom.com/~zilla/Computer/javaCbenchmark.html,或者mb manageability.org/blog/archive/20030520%23p_the_problem_with_cameron

一般来说,语言A的专业人员证明语言A比B快.

在大多数情况下,这个测试意味着A的专业人员确实知道如何在B中快速实现基准测试问题,或者B的utiliteis lybrarlies没有完美优化.

什么是语言表现?当我们谈论不同的技术时,情况很清楚.例如,我们可以弄清楚Nvidia CUDA何时比CPU计算更快,反之亦然.或模拟计算机优于数字计算机.

当我们处理具有相同目的的语言时,一切都有点困难.例如,我几年来一直是C#程序员,几乎每天我都在编写不安全的代码,而且我读过Jeffrey Richter关于低级内存管理的书.我可以在固定内存中实现一些数值算法,仔细验证算法的每一步.但我没有深入的Java知识.我将在表面上实现测试用例.我的基准测试将显示C#更快多次.但它不是真正的基准.

最后,很难将不同的语言与相同的基础进行比较.像F#和C#一样. 就像这个讨论一样

我发现的所有测试用例都表明测试的作者确实知道语言A并且不懂语言B.

所以.什么是更快的正确指标是什么?

PS.我真的相信C#比F#更快,因为我无法想象在F#中可以解决的任务,我不能在C#中做得更好(:

grr*_*sel 9

语言A的表现与语言B的表现几乎总是有缺陷的比较.实际比较的是在语言A的实现中执行程序P的性能与在语言B的实现中执行程序P的性能的执行.

换句话说,语言不能以性能为基准; 程序可以,语言实现可以.

这些比较假定程序P在两种语言中都是等效编写的,并且两种语言的实现都是等价的.

语言的不同实现可能相对于彼此具有更好或更差的性能.例如,谷歌正在努力优化Python以提高相对于主流解释器的性能,主流解释器具有与Python的Iron Python,Jython,Stackless和PyPy实现不同的性能特征.

易于编程是一个非常难以测量的主观因素,因为很难找到同样熟悉语言A和B的程序员,并且根据编写程序的经验第二次不能更好地编写程序时间.

可以采取各种客观措施,例如代码行; 但这些往往是有缺陷的,导致代码高尔夫.