2013-10-24 2 views
3

Сегодня я посмотрел на Mission Control, представленный в обновлении Java 7, 45 и немного протестировал с помощью Flight Recorder. Кажется, что все работает так, как ожидалось, я получаю много данных о потоках, памяти и т. Д. От тестируемого приложения. Мне кажется странным только одно: в категории «General» нет показанного использования CPU, под значком для использования ЦП есть только предложение «No Events in Recording». Когда я не использую Flight Recording, но JMX Console, использование процессора отображается в том же приложении. Во время создания Flight Recording я оставил большинство настроек в качестве их значений по умолчанию, но убедился, что на странице «Сведения о событии для профилирования» «Операционная система/процессор/загрузка процессора» включена и имеет настроенный период в 1000 мс, что должно быть достаточным для получения некоторых данных с использованием периода тестирования в несколько минут.нет использования центрального процессора в Java Mission Control Flight Recorder

Есть ли что-нибудь, что мне не хватает? Может быть, ограничение по причинам производительности, что-то еще мне нужно активировать?

Спасибо за ваши предложения!

ответ

3

жалко немного поздно ответ, но я думаю, что я знаю, что может быть ваш вопрос:

Вы используете локализованную версию Windows, случайно?

Мне удалось ввести ошибку, в которой я жестко запрограммировал путь запроса PDH для использования объектной строки «Process» PDH, например: «\ Process (% s #% d) \% s». Конечно, строка «Process» не гарантируется в локализованных версиях Windows, она должна быть разрешена с помощью индекса реестра.

Я исправил это в 9 и 8, я думаю, что есть обратный ход в течение 7 строк.

Пожалуйста, смотрите эту ошибку: https://bugs.openjdk.java.net/browse/JDK-8043323

Благодаря Markus

+0

Да, я использую немецкую версию Windows, но с немецкого установочного носителя я не устанавливал никаких языковых пакетов впоследствии или таких. –

+1

Хорошо, тогда это, скорее всего, ваша проблема. Извиняюсь. – Markus

0

Загрузка процессора включена по умолчанию в обоих шаблонах, поставляемых с JVM (1000 мс).

У вас такая же проблема, если вы не изменяете настройки в расширенной части мастера? Если вы просто нажмете «Готово» на новом шаблоне с первой страницы мастера записи?

+0

Да, все тот же без каких-либо изменений для профилей по умолчанию и с различными приложениями, например, Eclipse и DbVisualizer. –

+1

Вы можете попробовать добавить -XX: FlightRecorderOptions = loglevel = trace в командную строку. Если JVM не может получить использование ЦП от ОС, например, если счетчики производительности отключены в реестре Windows, вы должны увидеть его в журнале. –

+0

Вы были правы, я получаю следующие ошибки: Невозможно создать запрашиваемое событие CPULoad Любая идея, почему? У меня не было отключенных счетчиков производительности, и если я использую консоль JMX, я могу видеть использование процессором JVM и «машины». –

0

Благодаря помощи Киры Haglin Я знал, что искать и нашел следующие ошибки:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8019921

То, что я не понимаю, в том, что в отношении Backport-Bugs проблема должна была быть фиксируется в U45:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8021038

Но она по-прежнему не работает для меня, и мои приложения, такие как Eclipse, DbVisuliazer, Tomcat внутри Eclipse, и т.д. Похоже, я посмотрю, если я в состоянии повторно открыть ошибку.

Мой выход Java -версии:

Java HotSpot (TM) Client VM (сборка 24.45-B08, смешанный режим, обмен)

предполагает, что "b53", как указано в основной ошибкой могут стать следующие выпуски JRE/JDK, проблема была исправлена. Одна ошибка в обратном направлении - JRE 7u60.

+1

Эта ошибка была исправлена ​​в 7u40, но, скорее всего, она связана с пер-счетчиком. JMX использует другой механизм. Я предполагаю, что вы это видели, http://docs.oracle.com/cd/E15289_01/doc.40/e15066/knownissues.htm#CJAHCBDA, поскольку вы сказали, что perf os counter не были отключены. Извините, я не могу больше помочь. Какая версия WIndows? Вы работаете как администратор? –

+0

Нет, я не получал связанные сообщения об ошибках в журнале трассировки, только упоминавшееся ранее предложение CPULoad. Я использую Windows 7 64 бит, полностью обновлен и нет, я не работаю как Администратор. Вместо этого я использую пользователя, который является членом «Пользователи», то есть, если появляется UAC, я должен предоставить пароль для учетной записи администратора. Я попробую администратора, спасибо за вашу помощь! –

+0

Запуск только JMC в качестве администратора не работает, потому что он не видит, как мои процессы запускаются как обычный пользователь. Добавление моего пользователя в группу администраторов тоже ничего не изменило, в этом случае он видел мои процессы, но до сих пор не загружал загрузку процессора. Если я запускаю JMC через UAC, пока мой пользователь все еще является членом Администраторов, JMC вообще не видит никаких моих процессов. Кажется, я застрял без загрузки процессора, так как даже если бы это сработало, запуск всех процессов с повышенным использованием UAC не был бы вообще вариантом. –

Смежные вопросы