0

私は C# 5.0 in a Nutshell (O'Reilly) を読んでいますが、最初の章にはメモリ管理に関するセクションがあります。このセクションでは、 C#での不必要なポインターの使用について説明します。これは、C++ などの他の言語で見られる不適切なポインターの問題を解決するためです。最後に、パフォーマンスが重要なホットスポットでのポインタの重要な使用法について言及しています。

では、パフォーマンス クリティカルなホットスポットとその目的とは何でしょうか?

よろしくお願いします。

4

1 に答える 1

5

「パフォーマンス クリティカル ホットスポット」とは、パフォーマンスのボトルネックとなるコードの一部を指します。これには多くのことが考えられますが、その良い例は画像処理です。

かなり大きなビットマップがあり、各ピクセルに対して何らかの操作を実行する必要があるとしましょう。これは、多くの反復とおそらく多くの処理が行われるループになります。このループ (この「ホットスポット」) の反復ごとに CPU や IO 時間を少し節約すると、全体的なパフォーマンスが大幅に向上します。

だから、GetPixelSetPixelの外にいます。それらは遅く、経験から、大きな画像ではうまく機能しないことがわかっています。この場合LockBits、イメージを現在のメモリ位置に固定し、生のイメージ ビットへのポインターを取得するために使用できます。

この種のトラバーサルにより、コードがはるかに高速になり、「パフォーマンスが重要なホットスポット」を最適化しました。

于 2013-06-18T23:22:23.200 に答える