Почему dequeue() занимает так много процессорного времени?

Visual VM показывает, что FifoMessageDispatchChannel.dequeue() занимает много времени. Процесс Tomcat использует около 100% ядра процессора.

dequeue() самый большой потребитель времени


person brendan    schedule 10.09.2019    source источник
comment
На вашем скриншоте видно, что dequeue использует нулевое процессорное время.   -  person that other guy    schedule 10.09.2019
comment
Если у вас проблемы с высокой загрузкой процессора, то вы подозреваете неправильный метод. Этот поток просто ожидает сообщения в состоянии TIMED_WAITING и не потребляет процессорного времени. Чтобы найти реальную причину, вам нужно отсортировать записи в VisualVM по процессорному времени.   -  person Bedla    schedule 10.09.2019
comment
Спасибо Другой парень, Бедла   -  person brendan    schedule 11.09.2019
comment
Другой парень или Бедла, можете ли вы сказать это в ответе со ссылкой, объясняющей собственное время процессора?   -  person brendan    schedule 11.09.2019


Ответы (2)


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

person Tim Bish    schedule 10.09.2019
comment
Большое спасибо, Тим. Я посмотрю, смогу ли я найти что-то подобное, но я не уверен, какой метод искать вызовы. Я не знаю, находится ли вызываемый метод в Active MQ, Camel или в чем-то еще. - person brendan; 10.09.2019

dequeue() не требует много процессорного времени, как другой парень сказал . Этот ответ на другой вопрос объясняет, что время на себя включает в себя время, затрачиваемое на другие действия, кроме обработки, например как жду.

Self и Total Time (CPU) включают время в методе, использующем процессор, и они равны 0 для dequeue(). Чтобы найти методы, использующие больше всего процессора, отсортируйте по собственному времени (ЦП), как Бедла указан.

person brendan    schedule 10.10.2019