Использование VisualVM Charts API в своём JAVA приложении
Здравствуйте, в данной небольшой статье я хочу привести пример использования VisualVM Charts API. Я не буду писать о том, что такое VisualVM, думаю многие Java разработчики знают об этом инструменте для диагностики, ну а если нет можете почитать о нём здесь: http://habrahabr.ru/blogs/java/61857/
Итак, а что же такое VisualVM Charts API? Тем кто работал с VisualVM наверняка понравились графики, на которых можно посмотреть использование памяти приложением, загрузку CPU и т.д. Вот пример:
Так вот, с помощью VisualVM Charts API вы можете создавать такие графики и в своём приложении. Надо отметить, что VisualVM Charts API не предоставляет разработчику таких возможностей как jFreeChart или jChart2D, но зато несомненными плюсами являются скорость работы и простота использования, а ещё графики являются довольно красивыми. Так что их можно быстро внедрить в своё приложение для мониторинга различных процессов.
В качестве примера работы с VisualVM Charts API я напишу небольшую программку, где на графиках мы увидим, как эта программа использует память. Для работы нам понадобятся следующие файлы: com-sun-tools-visualvm-charts.jar, org-netbeans-lib-profiler-charts.jar, org-netbeans-lib-profiler-ui.jar, org-openide-util.jar. Найти их можете в папке JDK. Я, например, их скопировал и сделал библиотеку, ну это кому как удобно.
Теперь можно приступать. Для того чтобы сделать такой монитор нам понадобиться написать довольно мало кода. Вот собственно и он:
Теперь помещаем эту панель на форму и наслаждаемся результатом:
Как я и говорил таких возможностей как в jFreeChart здесь нет, но VisualVM Charts API позволяет выбрать тип графика. А именно: bytes (его мы использовали в примере), percent и decimal. Ну и само собой можно менять цвета. Вот что будет, если заменить строчки:
на
На этом всё. Этот пример в виде проекта NetBeans можно скачать здесь: http://scream3r.org/habr/VisualVM_Chart_Example.zip В папке VisualVM_Charts находятся все необходимые файлы, а в папке VisualVM_Chart_Example сам проект.
Материал подготовлен на основе статьи Real-Time Charts on the Java Desktop, прочитать которую можно здесь: http://java.dzone.com/news/real-time-charts-java-desktop
Итак, а что же такое VisualVM Charts API? Тем кто работал с VisualVM наверняка понравились графики, на которых можно посмотреть использование памяти приложением, загрузку CPU и т.д. Вот пример:
Так вот, с помощью VisualVM Charts API вы можете создавать такие графики и в своём приложении. Надо отметить, что VisualVM Charts API не предоставляет разработчику таких возможностей как jFreeChart или jChart2D, но зато несомненными плюсами являются скорость работы и простота использования, а ещё графики являются довольно красивыми. Так что их можно быстро внедрить в своё приложение для мониторинга различных процессов.
В качестве примера работы с VisualVM Charts API я напишу небольшую программку, где на графиках мы увидим, как эта программа использует память. Для работы нам понадобятся следующие файлы: com-sun-tools-visualvm-charts.jar, org-netbeans-lib-profiler-charts.jar, org-netbeans-lib-profiler-ui.jar, org-openide-util.jar. Найти их можете в папке JDK. Я, например, их скопировал и сделал библиотеку, ну это кому как удобно.
Теперь можно приступать. Для того чтобы сделать такой монитор нам понадобиться написать довольно мало кода. Вот собственно и он:
public class ChartPanel extends JPanel {
private SimpleXYChartSupport support;
private Runtime runtime = Runtime.getRuntime();
public ChartPanel() {
createModels();
add(support.getChart());
support.getChart().setBounds(1, 1, 598, 298);
}
private void createModels() {
SimpleXYChartDescriptor descriptor = SimpleXYChartDescriptor.bytes(0,
runtime.totalMemory()/(1024*1024),
runtime.totalMemory()/(1024*1024),
false,
1000);
descriptor.addLineFillItems("Heap Size");
descriptor.addLineFillItems("Used Heap");
support = ChartFactory.createSimpleXYChart(descriptor);
new Generator().start();
}
private class Generator extends Thread {
@Override
public void run() {
while (true) {
try {
Thread.sleep(100);
long[] values = new long[2];
values[0] = runtime.totalMemory();
values[1] = runtime.totalMemory() - runtime.freeMemory();
support.addValues(System.currentTimeMillis(), values);
}
catch (Exception e){
e.printStackTrace(System.err);
}
}
}
}
}
Теперь помещаем эту панель на форму и наслаждаемся результатом:
Как я и говорил таких возможностей как в jFreeChart здесь нет, но VisualVM Charts API позволяет выбрать тип графика. А именно: bytes (его мы использовали в примере), percent и decimal. Ну и само собой можно менять цвета. Вот что будет, если заменить строчки:
descriptor.addLineFillItems("Heap Size");
descriptor.addLineFillItems("Used Heap");
на
Color heap = new Color(255, 127, 127);
Color used = new Color(127, 63, 191);
descriptor.addItem("Heap Size", heap, 0, heap, heap, heap);
descriptor.addItem("Used Heap", used, 0, used, used, used);
На этом всё. Этот пример в виде проекта NetBeans можно скачать здесь: http://scream3r.org/habr/VisualVM_Chart_Example.zip В папке VisualVM_Charts находятся все необходимые файлы, а в папке VisualVM_Chart_Example сам проект.
Материал подготовлен на основе статьи Real-Time Charts on the Java Desktop, прочитать которую можно здесь: http://java.dzone.com/news/real-time-charts-java-desktop
0 комментариев