08/03/21 22:26:39
マルチコアを生かしきるほど高速化できるAPIってそうそうあるか?
マルチスレッド化してなくてレスポンスもっさりとか、描画系だけど過剰更新なのを遅延するとかは可能かもしれんが、
大抵のAPIだと基本的に呼んだ時点で処理完了を前提に構成されちゃうからなぁ…。
普通に出来そうな範囲だと
勝手にダブルバッファ化して、ロックしていても再描画することで「固まっている」感覚を軽減する
→描画だけ抜き出すのがメドー。アプリじゃなくてWindows側に干渉する必要がありそう。ってかそれぐらいならレイヤードウィンドウにするだけで済む
描画を自前でキャッシュするなどで制御して過剰描画を抑制して高速化を図る
→描画がネックなら効果的だが、それ以外の効果が薄い。
投げっぱなしAPIを別スレッドに自動分離
→レジストリ書き出し・ファイルIO(CopyFileとかその辺限定)辺りだけで、それがネックの物にしか効果が無いが、それがネックになることはあんまり…
メッセージをコマンド発行系と描画その他システム系で分離してそれぞれ別スレッドに分ける
→API描画系とコマンド発行系で同じスレッド前提だとアウアウ
投げっぱなしAPIは大抵が最初から投げてるからなー…。
APIじゃなく通常のロジック部分こそマルチコア向けに変更すべき箇所だが、これを自動認識するのは骨だ。…上手くいけば効果的だろうが…