Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Использование ресурсов ПК


Автор: guram 23.7.2007, 17:40
Уважаемые

Кто нибудь знает как можно оценить затраченные ресурсы при выполнении программы написанной на Java

Автор: LSD 23.7.2007, 17:43
В Панель управления\Администрирование, есть такая программа "Производительность". Ей и меряй.

Автор: guram 23.7.2007, 17:47
А Java случайно не предостовляет какой нибудь инструментарий????

Автор: ecologist 24.7.2007, 08:42
Цитата(guram @  23.7.2007,  17:47 Найти цитируемый пост)
А Java случайно не предостовляет какой нибудь инструментарий????

Ну вот такая штука есть - http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html

Автор: LSD 24.7.2007, 08:51
Цитата(guram @  23.7.2007,  18:47 Найти цитируемый пост)
А Java случайно не предостовляет какой нибудь инструментарий????

Только память, и то очень ограничено.

Автор: guram 24.7.2007, 11:29
Хотел бы услышать ваши отзывы:
http://www.theserverside.com/tt/articles/article.tss?l=EclipseProfiler

Автор: LSD 24.7.2007, 11:36
Профайлер конечно даст тебе больше информации, чем встроенные средства. А тебе надо для оптимизации или мониторинга реальной системы?

Автор: guram 24.7.2007, 11:53
Мне нужно узнать количество затраченных ресурсов при выполнении кода...


Автор: guram 25.7.2007, 11:33
Если кому интересно, то попробуйте профайлер, который идет вместе с NetBeans.

Мне понравился

Автор: Reptor 26.7.2007, 11:36
Цитата

Ну вот такая штука есть - http://java.sun.com/developer/technicalArt...E/jconsole.html


Кто то пользовался этим инструментом? может у кого есть какой пример его реального использования? И я что то не совсем понял (так как плохо английский знаю) ето готовая программа и её надо скачать или это какието бтблиотеки ?

Автор: mindflyer 26.7.2007, 12:22
Цитата(Reptor @  26.7.2007,  11:36 Найти цитируемый пост)
Кто то пользовался этим инструментом? может у кого есть какой пример его реального использования? И я что то не совсем понял (так как плохо английский знаю) ето готовая программа и её надо скачать или это какието бтблиотеки ? 

JConsole Идёт в составе jdk5 (ну и в 6-ой, наверное, не знаю), лежит в каталоге bin.
Используем иногда для отслеживания типа "а чегой-то у нас там с прогаммулиной" smile Выдаёт информацию об использовании памяти, о потоках (включая deadlock), garbage collector и прочее. Достоинства по сравнению с профайлером: во-первых, на скорость работы приложения почти не оказывает влияния. Во-вторых, можно в любой момент запустить на реально работающей системе (для этого при старте java-машины должен быть задан особый ключ, в доке описано). 
Эту же информацию можно получить в runtime, т.к. она предоставляется через MBean'ы. Мы так и сделали, на сервере автоматически регулярно сохраняется инфа о памяти и прочем в базу данных.
Но для решения задачи, поставленной в этой теме, лучше всё же профайлер, если для оптимизации. Если для мониторинга реальной системы, то есть тулзы, собирающие статистику и пишущие в лог. Сейчас не вспомню, думаю гугл поможет найти smile 
Мы написали свою либу, расставили вызовы типа "старт измерения времени", "стоп измерения времени" в местах, быстродействие которых нас особо интересует. Регулярно эта инфа скидывается в базу.

Автор: guram 26.7.2007, 16:34
Я видать поспешил с закрытием темы 

Дело в следующем:
Есть в програмке два основных метода enCode() и deCode(). Написал я есчё один метод, который вызывает их по очереди. Вначале посмотрел на время и в конце тоже посмотрел, отнял результаты и вывел на консоль получилось около 5 секунд.

НО

когда я запустил профайлер то время выполнения составило около 60 секунд.

Господа, кому верить то????

Автор: AntonSaburov 26.7.2007, 16:54
Цитата(guram @  26.7.2007,  16:34 Найти цитируемый пост)
когда я запустил профайлер то время выполнения составило около 60 секунд.

Так профайлер постоянно получает информацию и замедляет систему - но зато потом можно использовать информацию от профайлера - посмотреть, какие переменные чаще создаются, на какой кусок больше времени уходит и т.д.

Автор: guram 26.7.2007, 17:30
А как мне узнать количество тактов процессора, потраченное на выполнение определённого куска кода smile 

Автор: niasilil 27.7.2007, 21:55
Цитата(guram @ 26.7.2007,  17:30)
А как мне узнать количество тактов процессора, потраченное на выполнение определённого куска кода smile

А стандартным способом померять время  - в цикл на миллион раз с куском кода, потом то же самое без него, вычесть и поделить на миллион? 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)