[最終更新] 2017年2月21日
準備
WindowsとUnix環境の両方で、プロセスの優先度を下げるPythonのスクリプトです。つまりWindows、Mac、Linuxのいずれでも動くように。psutilを使うので、pipでインストールしておきます。
$ python -m pip install psutil
サンプルコード
下記のコードは、実行するPythonスクリプトの優先度を下げます。
# -*- coding:utf-8 -*-
def lowpriority():
import os
import platform
import psutil
proc = psutil.Process( os.getpid() )
if platform.system() == 'Windows':
proc.nice( psutil.BELOW_NORMAL_PRIORITY_CLASS )
else:
proc.nice(19)
エラー処理とか何もしていませんが。
BELOW_NORMAL_PRIORITY_CLASS の部分はWindowsで使用するパラメータで、SetPriorityClass function (Windows)にあるパラメータ名に変更すると、優先度を下げたり上げたりできます。
proc.nice(19)はUnix環境で用います。-20が最も優先度が高く、20がもっとも優先度が低いです。
補足ですが、子プロセスは親プロセスのnice値を継承します。Windowsは確認してませんが多分そうでしょう。
以下を参考にさせていただきました。
- Change process priority in Python, cross-platform – Stack Overflow
- Documentation – psutil – Documentation – A cross-platform process and system utilities module for Python – Google Project Hosting
関連記事
Python の記事
- [2015年12月17日] matplotlib も十分わかりやすく思えてしまう
- [2015年9月16日] Python でクロスプラットフォームの排他ロックはなかなか難しく
- [2015年8月5日] Raspbian で python-dev がインストールできなかった
- [2015年7月24日] Numpyを入れようとして「python version 3.4 required which was not found in the registry」と怒られた
- [2015年7月17日] Raspberry Pi のGPIO経由で入力信号を連続的に取得
- ---本記事---
- [2015年6月20日] とにかくWindowsにPython3、Numpy、Matplotlibをインストールする手順
スポンサーリンク