Есть ли способ узнать количество создаваемых объектов? - PullRequest
1 голос
/ 30 июля 2009

Есть ли способ узнать количество создаваемых объектов? Например, Если мне нужно найти количество объектов, которые создаются для приведенного ниже фрагмента кода, как я могу это сделать? Код:

String [][] str = { {new String("A"),new String("B"),new String("C")}, {new String("D"),new String("E")} };

Ответы [ 4 ]

3 голосов
/ 30 июля 2009

Да - вы можете использовать профилировщик, например Yourkit .

1 голос
/ 30 июля 2009

Netbeans и Eclipse имеют хорошие профилировщики, которые предоставят вам эту информацию. Это работает, если вы можете запустить свой проект в одной из этих IDE.

0 голосов
/ 30 июля 2009

Вот небольшой пакетный файл (надеясь, что у вас запущенные окна), который позволяет вам пройти через куча любого Java-приложения, работающего в JDK vm, с использованием инструментов JDK.

Он сбрасывает кучу с помощью JMAP, а затем запускает веб-сервер с использованием JHAT, после чего вы можете просматривать (в автономном режиме) кучу:)

@echo off
if not [%1%]==[] goto map
cls
echo.
echo Gebruik: map.cmd [pid#]
echo.
echo ( JVM 6+ required. You're using : %JAVA_HOME% )
echo.
echo Which PID would you like to use?
echo.
jps -l
echo.
pause
exit /b

:map
if exist c:\jmap.txt del c:\jmap.txt
jmap -dump:file=c:\jmap.txt %1
echo.
echo about to start the web-server on port 8081
pause
start http://localhost:8081
start jhat -port 8081 c:\jmap.txt -J-mx512m
echo.
0 голосов
/ 30 июля 2009

В этом случае вы можете просто сделать

int numberOfObjects = 0;
for(String[] s: str)
{
    numberOfObjects += s.length;
}

Редактировать: неважно, я просто очень плохой во всем навсегда ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...