Я пытаюсь проанализировать/профилировать основное приложение JAVA.Permgen Space: идеальное поведение должно быть достигнуто
Я использую JConsole с Eclipse MAT.
Я наблюдал следующее графах Пермь-Gen (данные, записанные в продолжительностью 1 час на машине Windows XP):
Код кэша:
- При запуске записи: 7MB
- После 1 час: 10,5 МБ
- График выглядит так: наклонная линия слегка увеличивается с интервалом.
пула памяти Пермь-Gen (Shared-RW):
- При запуске записи: 7MB
- Через 1 час: 7 МБ
- График выглядит следующим образом: параллельно оси X.
пула памяти Пермь-Gen (Shared-г0):
- При запуске записи: 5.5MB
- Через 1 час: 5.5MB
- График выглядит следующим образом: параллельно оси X.
бассейн Память:
- При запуске записи: 21MB
- Через 1 час: 22,5 MB
- График выглядит следующим образом: slantedline немного идет вверх/вниз увеличивается с интервалами.
Мой вопрос,
- Что можно сделать вывод, такое поведение Пермь-Gen пространства для каждого из вышеуказанной категории?
- Какое должно быть идеальное поведение для поиска каждой из вышеуказанных категорий?
Идеальное поведение здесь относится к состоянию, которое представляет:
- Применение выполняет в лучшем случае.
- Приложение не имеет проблем с памятью.
- В коде не нужны улучшения, чтобы импровизировать использование ресурсов.
Вышеуказанный вопрос применим и к анализу пространства кучи.
Ниже приведены дополнительные пояснения:
Это правда, что профилирование должно быть сделано таким же, как и окр производства. Но это действительно помогло бы, если я смогу понять, какова реальная цель здесь. На данный момент я пытаюсь узнать то же самое. Тогда в будущем я постараюсь сделать это на производстве.
Кроме того, я пытаюсь сравнить две базы кода (один рефакторинг и один старый). Я хочу знать, какую выгоду можно получить при реорганизации (в виде количественных данных). Я думаю, что если я буду записывать результаты на одной платформе, сравнение будет выполнено (независимо от производства или разработки).
UPDATE 1:
- Далее я побежал заявку на более чем 8 часов подряд.
- Я использовал GCViewer: 1.31 для получения информации GC.
- Я собираю данные, собранные с помощью GCViewer.
- Я заметил, что каждые 30 секунд происходило одно ПОЛНОЕ GC-событие. Это делает вывод, что множество объектов - это
log-living
. - Мне нужна дополнительная информация. Я действительно не уверен, как правильно и полностью интерпретировать эти данные.
Пожалуйста, взгляните на приложение. Укажите данные.
Какова Ваша производственная среда для этого кода? Если ответ не «Windows XP», вы тратите свое время. – kittylyst
Согласовано. Справедливо, что профилирование должно выполняться в том же масштабе, что и производство.Но это действительно помогло бы, если я смогу понять, какова реальная цель здесь. На данный момент я пытаюсь узнать то же самое. Тогда в будущем я постараюсь сделать это на производстве. –
Я хотел бы добавить, что я пытаюсь сравнить два кодовых файла (один рефакторин и один старый). Я хочу знать, в какой степени выгоды, получаемые при рафакторинге как количественные данные. Я думаю, что если я буду записывать результаты на той же платформе, сравнение будет справедливо (независимо от производства или разработки). –