sun.java2d.loops.ProcessPath $ Точка - PullRequest
       21

sun.java2d.loops.ProcessPath $ Точка

0 голосов
/ 19 января 2009

Я внезапно профилирую приложение, используя много памяти, и получаю следующее:

sun.java2d.loops.ProcessPath $ точка

Как выделяется почти 11 000 000 раз.

Что это, и есть ли решение для этого?

Ответы [ 2 ]

2 голосов
/ 19 января 2009

Мой первоначальный ответ был бы на вопрос, использует ли это на самом деле много циклов памяти / процессора? Пакеты sun. являются внутренними реализациями JVM от Sun, поэтому они, вероятно, будут подробными сведениями о том, что делает ваш код. Если эти объекты занимают огромное количество памяти, что может быть проблемой, но простое наблюдение 11 миллионов выделений не является признаком того, что что-то необычное.

Редактировать : небольшой поиск в Google, кажется, показывает, что это объект, используемый для кодирования ссылки на конкретную точку на 2D-плоскости. Скорее всего, если вы делаете что-либо, что связано с графикой, то да, у вас будет большое количество сгенерированных. Кроме того, каждое из них хранит только два целых числа (координаты x и y) и логическое значение, поэтому они будут очень маленькими объектами в общей схеме вещей. Даже если ни одно из этих 11 миллионов выделений не было собрано мусором (и я ожидаю, что большинство будет локальными переменными, поэтому они будут быстро собраны), то они не будут составлять большую часть кучи, если вы не работает на устройствах с небольшим объемом оперативной памяти.

Другими словами, ищите в другом месте свою проблему. Вероятно, было бы более полезно посмотреть на объекты, которые занимают большой объем текущего пространства кучи, или даже посмотреть на количество объектов, на которые ссылаются в данный момент, чтобы найти вашу утечку. Прочитайте документы, в которых приведены рекомендации по поиску и устранению утечек памяти с помощью выбранных вами инструментов. Просмотр общего распределения редко бывает так полезен, если только вы не знаете, для какого класса их должно быть (например, может быть полезно проверить, например, что синглтоны создаются только один раз).

0 голосов
/ 19 января 2009

Я решил проблему с памятью. Я делал некоторые неприятные ссылки, обрабатывая некоторые места в моем коде.

...