Различие между javacore, распараллельте дамп и дамп "кучи" в Websphere

Вместо того, чтобы переопределять OnStartup, попытайтесь использовать событие вместо этого:

<Application x:Class="My.App"
    xmlns="..."
    Startup="Application_Startup"
    ShutdownMode="OnExplicitShutdown">
        <Application.Resources>
            <app:ServiceLocator x:Key="serviceLocator" />
        </Application.Resources>
    </Application>

Код позади:

public partial class App : Application
{
    public App()
    { }
    private void Application_Startup(object sender, StartupEventArgs e)
    {
        // TODO: Parse commandline arguments and other startup work 
        new MainWindow().Show();
    }
}
52
задан S.L. Barth - Reinstate Monica 21 July 2012 в 07:53
поделиться

3 ответа

Дампы кучи в любое время, когда вы хотите увидеть, что хранится в памяти Ошибки нехватки памяти Дампы кучи - изображение объектов в памяти - используется для анализа памяти Ядра Java - также известные как дампы потоков или java-дампы, используемые для просмотра активности потоков внутри JVM в данный момент. IBM javacores должно быть много дополнительной информации помимо потоков и стеков - используется для определения зависаний, взаимоблокировок и причин снижения производительности Системные ядра

1
ответ дан 7 November 2019 в 09:32
поделиться

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

Дамп кучи - это «двоичный дамп» полной памяти, которую использует JVM, и является например, полезно, если вам нужно знать, почему у вас заканчивается память - в дампе кучи вы могли бы, например, увидеть, что у вас есть один миллиард объектов User, хотя у вас должна быть только тысяча, что указывает на проблему с сохранением памяти.

1
ответ дан 7 November 2019 в 09:32
поделиться

Дамп потока — это дамп стеков всех активных потоков. Таким образом, полезно для анализа того, чем занимается приложение в какой-то момент времени, и если это делается через определенные промежутки времени, это удобно для диагностики некоторых видов проблем с «выполнением» (например, взаимоблокировка потока).

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

Это то, чем они являются в «сыром» виде, и могут быть обеспечены многими способами. Обычно используется для описания дампов файлов с JVM и серверов приложений, и в этой форме они являются инструментом низкого уровня. Полезно, если по какой-то причине вы не можете получить что-либо еще, но вам будет проще использовать достойный инструмент профилирования, чтобы получить аналогичную, но более легкую для анализа информацию.

Что касается WebSphere, файл javacore представляет собой дамп потока, хотя и с большим количеством другой информации, такой как блокировки и загруженные классы, а также некоторую информацию об ограниченном использовании памяти, а файл PHD представляет собой дамп кучи.

Если вы хотите прочитать файл javacore, вы можете сделать это вручную, но есть инструмент IBM (BM Thread and Monitor Dump Analyzer), который упрощает эту задачу. Если вы хотите прочитать файл дампа кучи, вам понадобится один из многих инструментов IBM: MDD4J или Heap Analyzer.

53
ответ дан 7 November 2019 в 09:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: