Иногда опрос является необходимостью, и даже больше оптимально в конце концов - хотите верьте, хотите нет. Это зависит от множества переменных.
Если затраты на опрос достаточно малы, они намного превышают сложность, стоимость и РИСК разработки собственных хуков ядра стиля, чтобы получать уведомления об изменениях, которые вам необходимы. Тем не менее, когда перехватчики или события уведомления доступны или могут быть легко введены, их, безусловно, следует использовать, если ситуация вызывает.
Это классическое мышление программиста «совершенство». Как инженеры, мы стремимся к совершенству. Это реальный мир, хотя иногда приходится идти на компромиссы. По иронии судьбы, в некоторых случаях более совершенное решение может быть менее эффективным.
Я разрабатываю аналогичный инструмент «Автоматизация оптимизации процессов и приоритетов процессов» для Windows под названием «Process Lasso» (не реклама, его бесплатно). У меня был похожий выбор, чтобы сделать гибридное решение. Ловушки режима ядра доступны для определенных связанных с процессом событий в Windows (создание и уничтожение), но они не только не отображаются в пользовательском режиме, но и не помогают при мониторинге других метрик процесса. Я не думаю, что какая-либо ОС будет изначально информировать вас о любых изменениях в любой метрике процесса. Накладные расходы для этого множества различных хуков могут быть намного больше, чем простой опрос.
Наконец, учитывая ВЫСОКУЮ частоту изменений процесса, может быть лучше обрабатывать все изменения одновременно (опрос с интервалом) по сравнению с событиями / перехватами уведомлений, которые, возможно, придется обрабатывать много раз в секунду.
Вы правы, чтобы держаться подальше от сценариев. Зачем? Потому что они медленные (э). Конечно, планировщик linux неплохо справляется с обработкой потоков, связанных с процессором, понижая их приоритет и вознаграждая (обновляя) приоритет потоков, связанных с вводом / выводом, поэтому даже при высоких нагрузках скрипт должен быть Я думаю, отзывчивый.