Inf*_*ero 0 c# performance pointers
我在Nutshell(O'Reilly)中阅读C#5.0,在第一章中有一节讨论内存管理.本节介绍了C#中指针的不必要用法,因为它消除了其他语言(如C++)中指针不正确的问题.最后,它提到了性能关键热点中指针的关键用法.
那么,什么是性能关键的热点及其目的呢?
在此先感谢您的帮助.
"性能关键热点"是指作为性能瓶颈的一段代码.这可能是很多事情,但一个很好的例子就是图像处理.
假设我有一个相当大的位图,我需要对每个像素执行一些操作.这将是一个循环,有许多迭代,也许还有很多.在此循环的每次迭代(此"热点")期间节省一点CPU和/或IO时间将导致大的整体性能增益.
所以,GetPixel并且SetPixel在窗外.它们很慢,从经验来看,我知道它们在大型图像上表现不佳.在这种情况下,我可以使用LockBits将图像固定到其当前存储位置并获得指向原始图像位的指针.
这种穿越会导致远更快的代码,现在我已经优化的"性能关键热点"
| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |