Я попал в горячую точку, связанную с взаимодействием с MySQL. Моей первой мыслью было то, что горячая точка показывала время ожидания моего приложения после ввода-вывода. Но в отчете о профилировании VisualVM есть два столбца «Время» и «Время (ЦП)». Возможно, этот термин используется неправильно, но я предположил, что столбец собственного времени (ЦП) исключает время ввода-вывода. После дальнейшей отладки мы пришли к выводу, что предположение неверно и показывает время ввода-вывода, поскольку точка доступа находилась в java.net.SocketInputStream.read() драйвера MySQL и других операциях ввода-вывода, которые не должны занимать ресурсы процессора.
Итак, мой вопрос: почему VisualVM сообщает SocketInputStream.read() как время процессора?
Подробнее здесь: https://stackoverflow.com/questions/108 ... ocket-read
Мобильная версия