gpt4 book ai didi

c# - 托管代码能否像非托管代码一样快速地执行计算?

转载 作者:太空狗 更新时间:2023-10-29 23:37:34 25 4
gpt4 key购买 nike

最近我对不同的国际象棋引擎很感兴趣。该领域有许多开源和闭源项目。它们都是用 C/C++ 编写的(无论如何大部分)。这是一件显而易见的事情——你有一个计算密集型任务,你使用 C/C++,这样你就可以获得可移植性和速度。这似乎很简单。

但是,我想质疑这个想法。 .NET刚出现的时候,很多人说.NET的idea行不通,因为.NET程序注定超慢。实际上这并没有发生。有人在 VM、JIT 等方面做得很好,我们现在对大多数任务都有不错的表现。但不是所有的。 Microsoft 从未 promise .NET 将适用于所有任务,并承认对于某些任务您仍然需要 C/C++。

回到计算繁重任务的问题 - 是否有一种方法可以编写 .NET 程序,使其不会执行比使用相同算法的非托管代码差得多的计算?我对“持续”的速度损失感到满意,但任何比这更糟糕的都会成为问题。

你怎么看?对于托管代码中的计算,我们能否在速度上接近非托管代码,或者非托管代码是唯一可行的答案?如果可以,怎么做?如果我们不能,为什么?

更新:这里有很多好的反馈。我将接受投票最多的答案。

最佳答案

“可以”吗?是的当然。即使没有不安全/无法验证的代码,经过良好优化的 .NET 代码也可以胜过 native 代码。举个例子,Jon Harrop 博士在这个话题上的回答:F# performance in scientific computing

会吗?通常不会,除非您方式避免分配。

关于c# - 托管代码能否像非托管代码一样快速地执行计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6208663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com