Почему профилирование Mutex / Block во время выполнения отличается от профилирования CPU / Trace - PullRequest
0 голосов
/ 18 октября 2019

Средство выполнения Golang (для процессора и трассировки) дает нам возможность выбрать время профилирования. Затем он устанавливает скорость профилирования в начале вызова и сбрасывает скорость в конце вызова. Таким образом, это выглядит так:

CPUProfiling() {
   StartCPUProfile() // internally calls SetCPUProfileRate(100)
   sleep(seconds)
   StopCPUProfile () // internally calls SetCPUProfileRate(0)
}

С другой стороны, для мьютекса и профилирования блоков он ожидает от нас установки скорости в начале приложения, а при вызове профилирования он просто собирает информацию и возвращает.

Я сомневаюсь, почему мьютекс и профилирование блоков имеют разное поведение? Здесь также мы могли бы установить скорость в начале вызова и сбросить в конце вызова с некоторым временем ожидания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...