gpt4 book ai didi

c# - C# 中的 Array.Sort 为何如此超快?

转载 作者:太空狗 更新时间:2023-10-29 19:52:05 24 4
gpt4 key购买 nike

嘿,我一直在努力寻找答案(在 stackoverflow 和 google 上),以解决 C# 中的 Array.Sort 为何如此之快的问题。我没有找到。

无论我使用哪种算法,我都无法比它更快地对大数组进行排序。我知道它使用快速排序,但它必须非常优化。

有人知道他们是怎么做到这么快的吗?

最佳答案

这是标准的快速排序代码,用 C# 编写。您可以在 ArraySortHelper<>.QuickSort 中找到它,例如 Reflector。

在分析代码时,一个非常标准的错误是在禁用 JIT 优化器的情况下这样做。当您运行调试版本或附加调试器时会发生这种情况。当您分析 Array.Sort() 方法时不会发生这种情况,它是在您的计算机上安装 .NET 时由 ngen.exe 预先编译的。优化器对生成机器码的质量影响很大。检查this answer对于它执行的优化类型。

您可以调试发布质量的机器代码,但这需要更改一个选项。首先切换到 Release 配置。然后 Tools + Options,Debugging,General,取消勾选“Suppress JIT optimization on module load”。当心陷阱,您会看到内联、代码提升和消除局部变量的影响。

关于c# - C# 中的 Array.Sort 为何如此超快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6162132/

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