<分区>
“C# 与 Java 性能”、“F# 与 C# 性能”、“C 与 C++”、“ native C++ 与 C#”等日常讨论总是很有趣。就像idiom.com/~zilla/Computer/javaCbenchmark.html , 或 mb manageability.org/blog/archive/20030520%23p_the_problem_with_cameron
一般来说,A语言的专家证明A语言比B语言快。
在大多数情况下,这个测试意味着 A 的 pro 确实知道如何在 B 中快速实现基准问题,或者 B 的实用程序没有完美优化。
什么是语言表现? 当我们谈论不同的技术时,情况很清楚。例如,我们可以计算出 Nvidia CUDA 何时比 CPU 计算更快,反之亦然。或者模拟计算机优于数字计算机。
当我们处理具有相同目的的语言时,一切都会变得更加困难。例如,我做了几年的 C# 程序员,几乎每天都在编写不安全的代码,并且我读过 Jeffrey Richter 关于低级内存管理的书。我可以在固定内存中实现一些数值算法,仔细验证算法的每一步。但是我没有深入的Java知识。我将肤浅地实现测试用例。我的基准测试将显示 C# 快很多倍。但这不是真正的基准。
最后,很难比较具有相同基础的不同语言。就像 F# 和 C#。 Just like this discussion
我发现的所有测试用例都表明测试的作者确实知道语言 A 而不知道语言 B。
所以。什么是更快的正确指标?
附言。我真的相信 C# 比 F# 快,因为我无法想象在 F# 中可以解决的任务,而我在 C# 中不能做得更好 (: