Изменить приоритет процесса в Python, кросс-платформенную

У меня есть программа Python, которая делает много времени на вычисления. Поскольку он использует высокий процессор, и я хочу, чтобы моя система оставалась отзывчивой, я хотел бы, чтобы программа изменила свой приоритет ниже нормального.

Я нашел это: Установите приоритет процесса в Windows – ActiveState

Но я ищу кросс-платформенное решение.

  • Проверьте, является ли число нечетным или даже в python
  • Выполнять запросы с использованием Python over Tor
  • Сокращает () короткое замыкание на Python?
  • Можно ли безопасно заменить объект-объект другим объектом того же типа в методе?
  • Python: Событие Schedular, как кварц
  • Что означают * и ** перед значением переменной в подписи функции?
  • Как вы НЕ автоматически разыгрываете db.ReferenceProperty в Google App Engine?
  • Python: использование словаря для подсчета элементов в списке
  • 3 Solutions collect form web for “Изменить приоритет процесса в Python, кросс-платформенную”

    Вот решение, которое я использую, чтобы настроить мой процесс на приоритет ниже обычного:

    lowpriority.py

     def lowpriority(): """ Set the priority of the process to below-normal.""" import sys try: sys.getwindowsversion() except AttributeError: isWindows = False else: isWindows = True if isWindows: # Based on: # "Recipe 496767: Set Process Priority In Windows" on ActiveState # http://code.activestate.com/recipes/496767/ import win32api,win32process,win32con pid = win32api.GetCurrentProcessId() handle = win32api.OpenProcess(win32con.PROCESS_ALL_ACCESS, True, pid) win32process.SetPriorityClass(handle, win32process.BELOW_NORMAL_PRIORITY_CLASS) else: import os os.nice(1) 

    Протестировано на Python 2.6 для Windows и Linux.

    Вы можете использовать модуль psutil .

    На платформах POSIX:

     >>> import psutil, os >>> p = psutil.Process(os.getpid()) >>> p.nice() 0 >>> p.nice(10) # set >>> p.nice() 10 

    В Windows:

     >>> p.nice(psutil.HIGH_PRIORITY_CLASS) 

    На каждой Unix-подобной платформе (включая Linux и MacOsX) см. os.nice здесь :

     os.nice(increment) Add increment to the process's “niceness”. Return the new niceness. Availability: Unix. 

    Поскольку у вас уже есть рецепт для Windows, который охватывает большинство платформ – вызовите os.nice с положительным аргументом везде, кроме Windows, используйте этот рецепт там. Нет никакого «хорошо упакованного» кросс-платформенного решения AFAIK (было бы сложно упаковать эту комбо-версию, но, насколько дополнительная ценность вы увидели бы при ее упаковке?)

    Python - лучший язык программирования в мире.