GM を使用して画像圧縮を行い、同じことを行うと仮定したズーム機能とサンプル機能の間に大きなパフォーマンスの違いを観察します。
68k 画像にズーム機能を使用すると、プロセスはすべてのコア (12 コア、2.4G Hz マシン) のすべての CPU 時間を消費する可能性があり、スループットは 65/秒、応答時間は平均 469 ミリ秒、top コマンドによる負荷は11 前後、CPU 使用率は 100% に近い
サンプル機能を同じ環境で使用すると、24 プロセスが連携して 1000/秒に近いスループットを実現し、応答時間は平均 37 ミリ秒、top コマンドによる負荷は約 3、CPU 使用率は 50% から 80% の間で変動します。
これら 2 つの関数の公式ドキュメントは、次のように非常に単純です。
サンプル ピクセル サンプリング アルゴリズムを使用して画像のサイズを変更します。
void サンプル ( const Geometry &geometry_ )
zoom 画像を指定したサイズにズーム (サイズ変更) します。
void ズーム ( const Geometry &geometry_ )
画像処理後の効果は似ていますが、違いは非常に大きいです。
パフォーマンスの問題により、ズームではなくサンプルを選択する可能性があるため、これら2つの関数を使用するさまざまな状況を誰かが説明できますか?
さらに、ズームが CPU 時間を消費する理由を誰か教えてください。