什么是性能关键热点及其目的?

Inf*_*ero 0 c# performance pointers

在Nutshell(O'Reilly)中阅读C#5.0,在第一章中有一节讨论内存管理.本节介绍了C#中指针的不必要用法,因为它消除了其他语言(如C++)中指针不正确的问题.最后,它提到了性能关键热点中指针的关键用法.

那么,什么是性能关键的热点及其目的呢?

在此先感谢您的帮助.

Ed *_* S. 5

"性能关键热点"是指作为性能瓶颈的一段代码.这可能是很多事情,但一个很好的例子就是图像处理.

假设我有一个相当大的位图,我需要对每个像素执行一些操作.这将是一个循环,有许多迭代,也许还有很多.在此循环的每次迭代(此"热点")期间节省一点CPU和/或IO时间将导致大的整体性能增益.

所以,GetPixel并且SetPixel在窗外.它们很慢,从经验来看,我知道它们在大型图像上表现不佳.在这种情况下,我可以使用LockBits将图像固定到其当前存储位置并获得指向原始图像位的指针.

这种穿越会导致更快的代码,现在我已经优化的"性能关键热点"