我正在阅读C# 5.0 in a Nutshell (O'Reilly),在第一章中有一节讨论内存管理。本节解释了C#中不必要的指针使用,因为它消除了在 C++ 等其他语言中发现的不正确指针的问题。最后,它提到了性能关键热点中指针的关键用法。
那么,什么是性能关键热点及其用途?
在此先感谢您的帮助。
我正在阅读C# 5.0 in a Nutshell (O'Reilly),在第一章中有一节讨论内存管理。本节解释了C#中不必要的指针使用,因为它消除了在 C++ 等其他语言中发现的不正确指针的问题。最后,它提到了性能关键热点中指针的关键用法。
那么,什么是性能关键热点及其用途?
在此先感谢您的帮助。
“性能关键热点”是指成为性能瓶颈的一段代码。这可能是很多事情,但图像处理就是一个很好的例子。
假设我有一个相当大的位图,我需要对每个像素执行一些操作。这将是一个包含许多迭代的循环,并且可能会发生很多事情。在此循环的每次迭代(此“热点”)期间节省一点 CPU 和/或 IO 时间将导致整体性能大幅提升。
所以,GetPixel
都SetPixel
在窗外。它们很慢,根据经验,我知道它们在大图像上表现不佳。在这种情况下,我可以使用LockBits
将图像固定到其当前内存位置并获得指向原始图像位的指针。
这种遍历将导致更快的代码,我现在已经优化了“性能关键热点”