対象プロセスの実行速度調整機能
画面説明
![]() ■アタッチ用DLL(DLL名変更可)/実行速度調整精度(ミリ秒) この実行速度調整に使用するDLLのファイル名や、調整を行う間隔(ミリ秒数)を指定します。「アタッチに用いるAPI関数のエントリを修復」は、当ソフトウェアがアタッチに使用するAPI関数の開始アドレス以降が書き替えられている場合に、本来のバイナリデータで書き戻します。この書き戻し機能はWindows Vista以降では正常に動作しません。 Windows 7 64ビット版など一部の環境で、この機能を使用時に対象プロセスが強制終了する可能性があることから、そのような特殊な実行環境に対処する「UsaSpeed2.dll」を作成しました。必要に応じてアタッチ用DLLの指定をデフォルトの「UsaSpeed.dll」から「UsaSpeed2.dll」に変更してください。Windows 7 64ビット版では自動的に「UsaSpeed2.dll」が指定されるようにしました。なお、特に問題が無ければ、余計な処理を追加していない既存の「UsaSpeed.dll」を使用してください。 ■管理対象API関数/速度調整時の最低経過秒数(ミリ秒) 実行速度調整のためにAPIフックを行う対象のAPI関数を指定します。通常はデフォルトで指定されるAPI関数で速度調整が可能ですが、必要に応じて対象API関数を追加してください。「最低経過秒数」とは、処理待機を行うタイプのAPI関数で、実行速度調整にともない変更される処理待機時間に下限を設定するものです。この下限は実行速度調整の安全性確保のためのオプションです。「INFINITE修正」は、API関数が本来無制限に待機する処理を、「最低経過秒数」だけ待機する処理に書き替えるものです。 ■特定API関数呼び出し時にスレッドを停止してCPU占有率を低減/停止秒数(ミリ秒) 一般的なプログラムでCPU占有率の上昇の原因となりうる、特に繰り返し呼び出される処理を操作します。このような処理において使用されることが多いAPI関数の呼び出し時に、スレッドを指定秒数だけ一時停止してCPU占有率を低下させます。停止秒数の数値を上げすぎるとプログラムの異常動作を招く可能性があります。 ■アタッチ 設定内容を元に対象プロセスでAPIフックを行い、実行速度調整を開始します。 ■デタッチ 対象プロセスでのAPIフックを解除して実行速度調整を中止します。この処理は安全性が確保できないこともあります。 ■秒数変更 アタッチ後に実行速度調整での各種設定秒数を一括変更します。「INFINITE修正」の設定変更も行えます。 ■ホットキー有効 [キー設定]ボタンで設定したホットキーを有効にします。ホットキーの設定が保存されていないと、この機能は動作しません。 ■キー設定 ホットキーの設定や設定保存を行います。 ■実行速度(%) トラックバーで実行速度をリアルタイムに変更可能です。パーセンテージでは1倍速=100となります。また、「速度(%)数値指定:」右のエディットボックスに実行速度をパーセンテージで数値入力して、[左の指定値で実行速度(%)変更]ボタンでも実行速度を変更可能です。[プロセス停止]ボタンは対象プロセスの実行を完全に停止させます。 |
注意事項
|
基本的な操作の流れ
●ダイアログ表示
|
設定保存について
|
基本設定は[アタッチ]ボタンや[秒数変更]ボタンが押された際にINIファイルへ保存します。ただし、対象プロセスの実行状況によって管理可能なAPI関数が変化するため、管理対象API関数の設定は保存しないことにしました。また、推奨できない「INFINITE修正」の有効化設定も保存しません。 ホットキー設定の保存はホットキー設定用ダイアログ上から任意で行います。 |
補足
|
RDTSC命令で取得できるプロセッサのタイムスタンプ・カウンタは時間経過に連動する値といえます。しかし、複数CPU搭載あるいはマルチコアCPUのケースでの取得値整合性保持のため、SetThreadAffinityMask関数あるいは一時的なSetProcessAffinityMask関数併用が必須で、さらに経過時間取得には周波数算出等が必要となり煩雑です。そのため、アプリケーション側でのこの命令を用いた経過時間情報取得と処理実行タイミングの制御は、必要性と実装工数からみて現実的ではありません。 ブラウザ上でFlashムービーの再生速度を加速する場合は、管理対象API関数に「WaitForMultiple/SingleObjects(Ex)」を指定し、「最低経過秒数」には35ミリ秒を設定、さらに「INFINITE修正」を有効にします。この設定でアタッチ後に、[秒数変更]ボタンで「最低経過秒数」の秒数を少しずつ減少させてみて下さい。なお、「最低経過秒数」を極端に少なくすると、ブラウザの強制終了等誤動作を招きます。また、この再生速度変更の効果は実行環境のスペック等の影響を受けると考えられます。 (動作確認:IE/FireFox + FlashPlayer 9,0,28,0) |
