2013-06-18 17 views
0

我正在閱讀C#5.0的簡介(O'Reilly),第一章中有一節討論內存管理。本節解釋了在C#中指針的不必要用法,因爲它消除了在其他語言(如C++)中找到的不正確指針的問題。最後它提到了性能關鍵熱點中關鍵指針的使用。什麼是性能關鍵熱點及其目的?

那麼,什麼是性能關鍵熱點及其目的是什麼?

在此先感謝您的幫助。

回答

5

「性能關鍵熱點」是指一段代碼,它是一個性能瓶頸。這可能是很多事情,但是一個很好的例子就是圖像處理。

比方說,我有一個相當大的位圖,我需要對每個像素執行一些操作。這將會是一個有許多迭代的循環,也許還有很多事情要做。在該循環的每次迭代期間(這個「熱點」)節省一點CPU和/或IO時間,將會帶來很大的整體性能增益。

因此,GetPixelSetPixel都在窗口外面。他們很慢,根據經驗,我知道他們在大型圖像上表現不佳。在這種情況下,我可以使用LockBits將圖像固定到當前內存位置並獲取指向原始圖像位的指針。

這類遍歷將導致更快的代碼,我現在已經優化的「性能關鍵熱點」

+0

關鍵的一句:*** **是一個性能瓶頸*。 – user2246674