Я хочу собрать информацию о том, когда мои потоки планируются (и descheduled), и на который центральные процессоры, на Linux. Я рад собрать информацию и сохранить ее в файле для офлайнового анализа позже, так как я должен буду объединить информацию о планировании с другими источниками события, сгенерированными моим кодом. Идеально информация была бы собрана самой программой, поскольку я планирую использовать все ядра на машине большую часть времени и использовать внешний процесс, чтобы сделать, выборка нарушила бы выполнение, которое я хочу измерить.
Таким образом, действительно ли это возможно на Linux? Каковы опции?
Инструмент Linux perf - это инструмент профилирования общего назначения, поддерживаемый ядром. Помимо прочего, он может записывать события, в том числе события планирования задач.