c# - C++ 和 C# 在数学方面的性能差异

标签 c# c++ performance

我想以此作为开场白,我不想挑起一场战斗。我想知道是否有人有任何好的资源来比较 C++ 和 C# 的数学密集型代码?我的直觉是 C# 应该慢得多,但我真的没有证据证明这种感觉。我想知道这里是否有人曾经做过研究或自己测试过?我计划自己进行一些测试,但想知道是否有人以严格的方式做到了这一点(谷歌显示很少)。谢谢。

编辑:对于密集的,我的意思是很多 sin/cos/exp 发生在紧密的循环中

最佳答案

作为我工作的一部分,我必须定期比较核心数学在运行时和语言下的性能。

在我最近的测试中,在关键基准下,C# 与我优化的 C++ 控制案例的性能——通过最终归一化步骤的 4d 矩阵变换长的 4d vector 数组——C++ 比 C# 快大约 30 倍.在我的 C++ 代码中,我可以每 1.8ns 获得一个 vector 的峰值吞吐量,而 C# 可以在每个 vector 大约 65ns 内完成这项工作。

这当然是一个特殊的案例,C++ 并不幼稚:它使用软件流水线、SIMD、缓存预取,以及整个九码的微优化。

关于c# - C++ 和 C# 在数学方面的性能差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1500584/

相关文章:

c# - UserManager 在创建用户时不初始化属性

C++ 变量增量停止程序

c++ - ostringstream 是未定义的类型?

java - 高效的 Java 语言构造来检查字符串是否为 pangram?

python - 在 Python 中读取大文件

java - 为什么java中BitSet的内部数据存储为long[]而不是java中的int[]?

c# - 我在 WPF 中的哪里放置我的登录逻辑以及如何在 MVVM 中处理它?

c# - 将常规类库转换为 ASP.NET 5 (vnext)

c# - 当数据以 '1c' 开头时,TCP 数据包不会从俄罗斯到达加拿大

c++ - 用于访问 Windows 应用程序网格上的数据的机器人(像人类一样)