TGViewer
Python Заметки Python Заметки @pythonotes · 2.2K subscribers
Post #100 693
В стандартной библиотеке os есть интересный метод os.nice().
Как написано в документации:

Add increment to the process’s "niceness".

Добавляет "любезности" процессу??? Ну почти...

В Unix системах есть стандартная утилита nice, которая может контролировать приоритет использования CPU процессом.
Обычно это значение 0, что значит стандартный приоритет. Но если добавить "любезности", то процесс будет больше отдавать другим, оставляя себе минимальный приоритет. Или наоборот.

Запустим тест чтобы визуально увидеть разницу.

🔸 Загрузите процессор на 100%.
Можно поставить любую тяжёлую задачу.
Например, сохраните этот код в файл и запустите в консоли (Python3)

🔸 Напишите функцию которая активно использует процессор и считает потраченное время.

import time

def compute():
array = []
for i in range(10):
start = time.perf_counter()
for i in range(1000000):
x = 2*2
array.append(time.perf_counter()-start)
return sum(array) / len(array)

Моя функция запускает 10 раз некий код и возвращает среднее время.

🔸 Тестируем

import os
# запускаем первый тест в дефолтным приоритетом
t1 = compute()
# меняем приоритет на минимальный
os.nice(19)
# запускаем второй тест
t2 = compute()
# смотрим реузльтат
print("Test 1", t1, "sec")
print("Test 2", t2, "sec")
print("Diff", t2/t1, "times")

В консоль распечатается время каждого теста и разница времени.

🌎 Код тестов

🔸 Где может пригодиться?

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

🔸 Что еще нужно помнить?

- Чтобы добавить приоритет нужно в функцию os.nice() отправить отрицательное значение. Так как данный метод всегда прибавляет число к текущему приоритету.
- Понижение приоритета доступно любому юзеру, повышение доступно только если процесс запущен от суперюзера.
- Узнать текущее значение: os.nice(0)
- Запускаемые подпроцессы наследуют приоритет.
- работает только на Linux.
- Доступный диапазон значений -20...19.

#libs
Wikipedia nice (Unix) standard UNIX utility
More from @pythonotes
  1. Sep 21, 2026­ WebAssembly это мощная технология позволяющая загружать практически любое приложение в б…
  2. Aug 17, 2026Не так давно столкнулся с API который в ответе с ошибкой присылал только статус-код. Без п…
  3. Jul 20, 2026У меня основная ОС это Linux. Но нередко требуется делать сборку клиента под Windows. Соби…
  4. Jul 13, 2026В прошлый раз был пример с понижением привелегий процесса. Проблема в том, что обратно под…
  5. Jul 6, 2026Модуль pwd может использоваться для считывания информации о пользователях из базы данных п…
  6. Jun 22, 2026Недавно я реализовал Multi Tenancy систему на FastAPI + SQLAlchemy и пересобрал её в небол…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →