Использование Профилировщик
Ваш подход будет работать, тем не менее, но если Вы ищете более сложные подходы. Я предложил бы использовать Профилировщик C# .
преимущества, которые они имеют:
существуют многие доступные открытый исходный код также.
Ненавижу это говорить, но именно так работает графический интерфейс.
Windows не блокирует работу. Это означает, что, как только вы создадите его в коде, ваш код продолжает выполняться.
Это означает, что ваше окно, вероятно, выходит из области видимости сразу после создания, если вы явно не сохранили ссылку на него где-то еще. В этот момент окно все еще отображается на экране.
Это также означает, что вам нужен другой способ избавиться от него, когда вы закончите с ним. Введите метод Window dispose ()
, который можно вызвать из одного из слушателей Window.
В Java, когда у вас есть собственный код (который является одноранговым компонентом этих компонентов Windows), вам необходимо чтобы сохранить ссылку, чтобы сборщик мусора не пытался собрать объект, пока встроенные указатели все еще существуют,
Это могло бы объяснить это: Проблемы с потоками AWT
Просто в JVM происходит гораздо больше, чем просто видимые компоненты, фоновые потоки и так далее. Эти потоки и другие ресурсы поддерживаются до тех пор, пока не будет удалено последнее окно JVM, после чего они будут приведены в порядок, и JVM сможет полностью завершить работу. Таким образом, каждое используемое вами окно, фрейм и диалоговое окно, по сути, удерживает блокировку JVM, чтобы предотвратить ее выход, и вам нужно вручную управлять этим с помощью вызовов dispose ()
.
Я согласен это немного жук. Я сам несколько раз сталкивался с этим.