操作
機能 #3713
完了CPU affinityを設定する機能を追加する。
開始日:
2016/11/21
期日:
進捗率:
100%
予定工数:
katami さんが7年以上前に更新
実装¶
インターフェース(ICPUAffinity)を準備して、その実装クラスとして、Linux用クラスとWindows用クラスを作成。
システムプロパティ(System.getProperty) から OS の種類(os.name)を取得して、OSにあったクラスのインスタンスを生成する。
Linux用実装クラス¶
Java Native Access(JNA) を使って libc の関数をコール。
Windows用実装クラス¶
Java Native Access(JNA) を使って Kernel32 の関数をコール。
動作確認¶
- rtc.conf に以下を追加
manager.cpu_affinity: 1
- component.conf に以下を追加
exec_cxt.periodic.cpu_affinity: 1
Linux用実装クラス¶
- topコマンドで確認
$ top -p 5544
[f]でフィールドマネージャで「P = Last Used Cpu」を有効にする。
Windows用実装クラス¶
- タスクマネージャーでプロセスを確認
[詳細]タブで PIDによりプロセスを探して、右クリック。
「関係の設定」を開いて指定のCPUだけにチェックが入っていることを確認。
- スレッドはどうやって確認するか?
操作