У меня есть очередь блокировки, и рабочие берут из этой очереди, а затем работают около 1-10 мс.
Я хотел бы выяснить некоторую относительную цифру того, сколько времени работник был активным и бездействующим в данный период времени (например, 70% активности в последнюю минуту).
Суммирование коротких периодов в 1 мс может привести к неточности и извлечению нано времени, потребляющего большую производительность.
Есть ли какой-нибудь изящный способ выполнить такую задачу?
В моем коде эти установки работника очереди чаще, поэтому я хотел бы иметь возможность профилировать узкие места во время выполнения.
РЕДАКТИРОВАТЬ: Я только хочу знать, может ли поток работать. Если ОС перемещает поток из фокуса обработки, он все равно считается. Только при ожидании блокировки очереди следует считать временем простоя.