【发布时间】:2011-07-19 11:46:04
【问题描述】:
我了解不安全代码更适合访问 Windows API 之类的东西并执行不安全类型转换,而不是编写性能更高的代码,但我想问一下您是否注意到实际应用程序的任何显着性能改进与安全的 c# 代码相比,使用它。
【问题讨论】:
-
P/Invoke 与
unsafe不太一样...我不确定推理是否如下...此外:您是否测量过您是否在这里做一些有用的事情? -
无论是安全还是不安全,实际上都不应该具有更高的性能。总体性能取决于您在代码中实现的算法。
-
我现在没有使用不安全的代码。我只是想了解是否值得将代码的关键部分更改为不安全的代码。
-
您为什么认为“不安全”意味着“更好的性能”?这只适用于几个专门的场景。
-
在考虑
unsafe之前,请确保您知道如何有效地使用 C#。避免过度创建临时对象。何时使用结构数组,以及需要注意的问题。Buffer.BlockCopy。 JIT 优化数组边界检查的条件。 (我不是专家,只是说说想到的。)Google C# 高性能 和 C# 性能提示。
标签: c# performance unsafe