与仅使用托管代码相比,使用c#中的指针是否具有任何显着的性能优势?指针的最佳用例是什么?我真的没有任何具体的例子,我以前从未需要使用它们.看起来像使用指针可以更快地操作数据,但最终可能只是微不足道.我甚至考虑它们的唯一原因是因为我正在创建一个Matrix类(仅限学习目的),我想尽量使所有计算尽可能高效.
Eri*_*ert 10
与仅使用托管代码相比,使用c#中的指针是否具有任何显着的性能优势?
有时.
指针的最佳用例是什么?
极其性能敏感的代码,以及与现有非托管代码的互操作性.
我真的没有任何具体的例子,我以前从未需要使用它们.
我已经写了大约十年的C#代码了,我不记得曾经需要在实际的"业务线"代码中使用指针.测试用例,当然.但不适合生产.
我想尽量使所有的计算都尽可能高效.
我在StackOverflow上听到了很多.不,你实际上不希望这样.您希望在给定预算的情况下尽可能提高效率.例如,您可能不愿意投入数十亿美元用于新的数学芯片制造. 有些人愿意这样做,但你不是其中之一.有些人有这样的钱可以花钱和问题,如果他们有技术,他们可以解决利润.您可能愿意在给定一定数量的现有技术的情况下尽可能提高效率,并给予您一定的时间和精力.因为您的目标实际上不是编写快速数学,所以您的目标是学习如何优化程序.
在这种情况下,了解如何优化程序.优化程序的方法是使用分析工具识别代码中的问题点,然后根据数据决定是否探索不安全代码解决方案的成本和收益.例如,可能是您的大部分成本是由于缓存未命中而您真正需要的是更好的局部性而不是更少的阵列范围检查.或许你会发现,对于你的问题空间,memoization是一种更好的技术.有很多方法可以让程序更快,但是你不知道如果没有数据你是否会变得更好.
| 归档时间: |
|
| 查看次数: |
576 次 |
| 最近记录: |