Добавить в корзинуПозвонить
Найти в Дзене
Toxblh

Так уже не первый раз спрашивают

Так уже не первый раз спрашивают. Давайте расскажу чуть более детально. В Linux если программа сама себе не выставила приоритет, как либо, то будет, как все, быть на равных за время процессора. Кратко. Процессор у нас однозадачный. То есть в единицу времени работает только одна программа. И он ОЧЕНЬ быстро умеет переключаться между ними (упрощение). Вот на вопрос, а кто следующий в очереди за колбасой на выполнение и регулирует планировщик. Но он тупенький в этом плане и не знает, что сейчас важно. А что нет, для этого и есть nice - то есть цифра приоритета. Где -20 наивысший, будет всегда следующим до 19 - низший, его будут смещать. Нам и нужно их правильно расставить. На мобильном линуксе и настольном, для человека важнее, то, во что он смотрим сейчас, что слушаем и что качаем. Так вот gamemode, ananicy-cpp, system76-scheduler решают одну и ту же задачу. Как помочь планировщику (как CPU, так и IO), в ручном режиме, понять, что важно для человека за компьютером сейчас. system76-

В ответ на пост

Так уже не первый раз спрашивают. Давайте расскажу чуть более детально.

В Linux если программа сама себе не выставила приоритет, как либо, то будет, как все, быть на равных за время процессора.

Кратко. Процессор у нас однозадачный. То есть в единицу времени работает только одна программа. И он ОЧЕНЬ быстро умеет переключаться между ними (упрощение). Вот на вопрос, а кто следующий в очереди за колбасой на выполнение и регулирует планировщик. Но он тупенький в этом плане и не знает, что сейчас важно. А что нет, для этого и есть nice - то есть цифра приоритета. Где -20 наивысший, будет всегда следующим до 19 - низший, его будут смещать. Нам и нужно их правильно расставить.

На мобильном линуксе и настольном, для человека важнее, то, во что он смотрим сейчас, что слушаем и что качаем.

Так вот gamemode, ananicy-cpp, system76-scheduler решают одну и ту же задачу. Как помочь планировщику (как CPU, так и IO), в ручном режиме, понять, что важно для человека за компьютером сейчас.

system76-scheduler и ananicy-cpp работают по правилам. Есть ручные списки приложений, кому и какой приоритет задать, чтобы gnome попадал туда чаще условно и не зависал. Чтобы интерактивные приложения - игра, браузер, телеграм, code - получали приоритет над всем остальным в системе.

У system76-scheduler есть дополнительный костыль - он умеет получить приложение с фокусом через gnome расширение и так как оно ещё и про фишки popos, я сделал Zorkiy (выше пост), чтобы оставить только фокус-функцию.

gamemode же напротив работает очень жёстко. Так как мы явно говорим, что запускаем %вот эту% программу с приоритетом - он ей задирает nice(приоритет/вежливость) очень довольно высоко -4 (ananicy например -5) и меняет профили планирования на performance все, что никто больше не делает, то есть компьютер работает на максимум в этом режиме.

Так как - они все про одно и тоже. Они конфликтуют логично. Так что не нужно их смешивать намеренно.

Ну и 5 копеек про napd он работает иначе и ближе к MacOS/Android реализации, он работает в паре с приоритетами, но не вместо. Вне фокуса начинает душить приложения, на которые пользователь не смотрит. Раз не смотрит - значит они ему ненужны и для энергосбережения, их можно сильно замедлять или останавливать. Задача куда сложнее чем кажется, так как это не Apple/Google и тут нет ручек у приложения сказать "стой, это точно нужно пользователю не тормози поток это" например для скачки файла из всего chrome. Нам нужно это понять... или забить)

TL;DR: gamemode, ananicy-cpp, system76-scheduler - про то, чтобы у нас был быстрый UI всегда для пользователя и игры выдавали максмум FPS без фризов через приоритеты планировщикам.

Можете в комментариях поправлять :)