Самостоятельное время в Visualvm занимает больше времени, чем в остальных

введите здесь описание изображения

Я запускаю свою программу в режиме отладки и обнаружил, что использование ЦП увеличивается для первого метода. Остальные методы требуют лишь небольшого использования ЦП.

Может ли кто-нибудь указать мне, почему первый метод требует гораздо большей загрузки ЦП (почти 100%)? Как я могу уменьшить его?


person goutthee    schedule 20.06.2016    source источник
comment
покажи нам свой метод   -  person Nicolas Filotto    schedule 20.06.2016
comment
Большая часть вашего метода вызывает другую функцию. Это странно. Возможно ли, что gc происходит прямо тогда, когда стек вызова находится в методе? Проголосовал, потому что мне любопытно.   -  person waltersu    schedule 20.06.2016
comment
я не вызываю другой метод внутри одного метода. Я вызываю только те методы java api для инструкции sql.   -  person goutthee    schedule 20.06.2016
comment
Все виды соединений с базами данных и т. д. будут использовать время настенных часов, но не время процессора. Вы показываете только время настенных часов, что просто показывает, что ваш метод занимает больше всего времени. Однако этот вопрос по-прежнему не имеет ничего общего с использованием ЦП.   -  person Kayaman    schedule 20.06.2016
comment
что с процентом? извините, я новичок в visualvm   -  person goutthee    schedule 20.06.2016


Ответы (1)


Самостоятельное время не измеряет использование ЦП. Он измеряет время по настенным часам. Вот почему есть Total Time, Total Time (CPU), Self Time и Self Time (CPU). Self Time (CPU) будет интересной частью, когда вы ищете горячие точки в своем коде.

Например, если у вас есть спящий поток (только спящий, без работы), он даст вам 100% за Self Time (и такое же время за общее время), но 0 за ЦП.

person Kayaman    schedule 20.06.2016
comment
Вызов Thread.sleep() вызывает другую функцию и является частью общего времени, но не частью самостоятельного времени. - person waltersu; 20.06.2016
comment
Thread.sleep(); вызывает собственный метод, который получает полное "само время" без использования ЦП. - person Kayaman; 20.06.2016