C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: アプリケーションの側からCPUを優先的に使用できるようにする


(過去ログ 62 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■35545 / inTopicNo.1)  アプリケーションの側からCPUを優先的に使用できるようにする
  
□投稿者/ 〆太 (1回)-(2009/05/08(Fri) 17:33:10)

分類:[C#] 

現在CPUにかなり負担のかかるアプリケーションをC#で作成しております。
アプリケーションの側からCPUを他の起動中のアプリケーションよりも優先的に
使用するよう設定できれば、このアプリケーションの処理速度を速められる
んじゃないかと思います。
見当違いかもしれませんが、なにか手段はあるでしょうか。


引用返信 編集キー/
■35546 / inTopicNo.2)  Re[1]: アプリケーションの側からCPUを優先的に使用できるようにする
□投稿者/ オショウ (175回)-(2009/05/08(Fri) 17:41:56)
No35545 (〆太 さん) に返信
> 使用するよう設定できれば、このアプリケーションの処理速度を速められる
> んじゃないかと思います。
> 見当違いかもしれませんが、なにか手段はあるでしょうか。

  あるにはあります。

  プロセス・スレッドの優先順位を上げる設定や
  本当にCPUのコア等を占有する設定があります

  ただCPUのコア等を占有しても処理が高速にな
  るかどうかは、何に負荷が発生しているかで変化
  します。

  どういう種類の処理をどの程度やっているのでし
  ょうか?

  演算が多いならば、C++ CLIで作成したり並列処理
  用の演算ライブラリを購入し使用したり・・・

以上。
引用返信 編集キー/
■35547 / inTopicNo.3)  Re[1]: アプリケーションの側からCPUを優先的に使用できるようにする
□投稿者/ 魔界の仮面弁士 (1059回)-(2009/05/08(Fri) 17:46:51)
No35545 (〆太 さん) に返信
> アプリケーションの側からCPUを他の起動中のアプリケーションよりも優先的に
> 使用するよう設定できれば、このアプリケーションの処理速度を速められる
> んじゃないかと思います。

優先度なら PriorityClass プロパティ、CPU 割当なら ProcessorAffinity プロパティとか…。
引用返信 編集キー/
■35548 / inTopicNo.4)  Re[2]: アプリケーションの側からCPUを優先的に使用できるようにする
□投稿者/ なちゃ (277回)-(2009/05/08(Fri) 17:50:33)
念のために書いておきますが、優先度を上げたところで
大抵の場合大きな差は期待できません。
もちろんマシンの状況にもよりますが。

引用返信 編集キー/
■35549 / inTopicNo.5)  Re[3]: アプリケーションの側からCPUを優先的に使用できるようにする
□投稿者/ なちゃ (278回)-(2009/05/08(Fri) 17:54:13)
他にも重いアプリを同時に動かしてるなら影響がある可能性もありますが、
そうでなければほとんどの時点において、元々CPUはそれほど使われていないはずだからです。
引用返信 編集キー/
■35551 / inTopicNo.6)  Re[4]: アプリケーションの側からCPUを優先的に使用できるようにする
□投稿者/ 774RR (352回)-(2009/05/08(Fri) 18:01:41)
重いプログラムのCPU優先順位を上げるのは絶対に避けるべし、に1票

タスクマネージャすら起動しなくなったり
タッチパッドすらまともに動作しなくなったりして
停めようにも操作すらできなくなってしまい、物理的に電源を切るしかない、に陥るだけと予測

どうせ時間がかかるんなら、処理完了までの時間が3秒4秒早くなったってあまり関係ないんだよ
むしろその間にほかの事ができるよう、CPU優先順位を下げるほうがユーザーフレンドリーだ。
引用返信 編集キー/
■35552 / inTopicNo.7)  Re[5]: アプリケーションの側からCPUを優先的に使用できるようにする
□投稿者/ よねKEN (328回)-(2009/05/08(Fri) 18:30:45)
No35551 (774RR さん) に返信
> 重いプログラムのCPU優先順位を上げるのは絶対に避けるべし、に1票

こちらにもう1票。

プログラムからでなく、手動で行う場合、
タスクマネージャで、プロセスを選択して「優先度の設定」ができますが、
処理が重くて応答なしになったプログラム(待っていればいずれは終了するもの)の優先度を
「リアルタイム」に設定してみたら(早く終わるかなと試したことが・・・(^^;)、
タスクマネージャすらまともに反応しなくなって、お手上げになったことが2、3度あります。

「リアルタイム」にしなければ、そこまでにはなりませんでしたが、
その代わり、目に見えて効果があるようにも思えませんでした。
引用返信 編集キー/
■35554 / inTopicNo.8)  Re[1]: アプリケーションの側からCPUを優先的に使用できるようにする
□投稿者/ Jitta on the way (315回)-(2009/05/08(Fri) 19:02:10)
No35545 (〆太 さん) に返信
> 現在CPUにかなり負担のかかるアプリケーションをC#で作成しております。

そういう場合、細かい計測をすることが鉄則です。
単に計算で何回もループを回しているなら、よく知られたアルゴリズムがないか、探します。
大きなファイルの読み書きが含まれる場合、CPU 使用率を上げてもほとんどの場合、意味がありません。ディスク I/O がついてこないからです。

などなど。まずは計測です。
引用返信 編集キー/
■35557 / inTopicNo.9)  Re[2]: アプリケーションの側からCPUを優先的に使用できるようにする
□投稿者/ 〆太 (2回)-(2009/05/09(Sat) 01:56:26)
いろいろご意見ありがとうございました。実際優先度を上げて試したところ、
ほとんど変わりませんでした。
もっと速いプログラムができるようにがんばってみます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -