Skip to content

Commit 925ac3c

Browse files
committed
JFR Browser improvements
- simple filter to display just First/Middle/Last/Sample N events of the selected type - option to display/hide experimental events and properties
1 parent ad7eb91 commit 925ac3c

File tree

3 files changed

+341
-123
lines changed

3 files changed

+341
-123
lines changed

visualvm/jfr/src/org/graalvm/visualvm/jfr/views/browser/BrowserNode.java

Lines changed: 15 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -49,11 +49,6 @@ abstract class BrowserNode extends CCTNode {
4949

5050
long eventsCount;
5151

52-
// long time = -1;
53-
// String setting;
54-
// String value;
55-
// String thread;
56-
5752

5853
BrowserNode(String name, Icon icon, BrowserNode parent, List<BrowserNode> children) {
5954
this.parent = parent;
@@ -134,10 +129,6 @@ public String toString() {
134129
return name;
135130
}
136131

137-
// public String eventsToString() {
138-
// return " (" + eventsCount + (eventsCount == 1 ? " event)" : " events)");
139-
// }
140-
141132

142133
static final class EventType extends BrowserNode {
143134

@@ -175,12 +166,7 @@ static final class Category extends BrowserNode {
175166
}
176167

177168

178-
static class Root extends BrowserNode implements JFREventVisitor {
179-
180-
// private Map<Long, String> types;
181-
182-
// private long settingID = 0;
183-
169+
static class Root extends BrowserNode implements JFREventVisitor {
184170

185171
Root(String name) {
186172
this();
@@ -193,83 +179,28 @@ static class Root extends BrowserNode implements JFREventVisitor {
193179
}
194180

195181

196-
// void visitEventTypes() {};
197-
//
198-
//
199-
// @Override
200-
// public void initTypes() {
201-
// types = new HashMap();
202-
// }
203-
//
204-
// @Override
205-
// public boolean visitType(JFREventType type) {
206-
// types.put(type.getId(), type.getDisplayName());
207-
// return false;
208-
// }
209-
210-
211-
void reloadEvents(JFREventVisitor visitor) {};
212-
213182
JFREventType type(String typeName) { return null; }
214183

215184

216185
@Override
217186
public boolean visit(String typeName, JFREvent event) {
218-
// if ("jdk.ActiveSetting".equals(typeName)) { // NOI18N
219-
// try {
220-
JFREventType type = type(typeName);
221-
// String eventName = typeName;
222-
String eventName = type.getName();
223-
224-
BrowserNode categoryNode = getOrCreateCategory(this, type.getCategory());
225-
BrowserNode eventNode = categoryNode.getChild(eventName);
226-
if (eventNode == null) {
227-
eventNode = new EventType(typeName, type, categoryNode);
228-
categoryNode.addChild(eventNode);
229-
} else {
230-
((EventType)eventNode).addEvent();
231-
}
232-
// String eventName;
233-
// try {
234-
// eventName = getTypeName(event.getLong("id")); // NOI18N
235-
// } catch (JFRPropertyNotAvailableException e) {
236-
// eventName = event.getValue("settingFor").toString(); // NOI18N
237-
// }
238-
//
239-
// BrowserNode eventNode = getChild(eventName);
240-
// if (eventNode == null) {
241-
// eventNode = new Event(eventName, this);
242-
// addChild(eventNode);
243-
// }
244-
//
245-
// String settingName = event.getString("name"); // NOI18N
246-
// String settingValue = event.getString("value"); // NOI18N
247-
//
248-
// String threadName;
249-
// try {
250-
// threadName = event.getThread("eventThread").getName(); // NOI18N
251-
// } catch (JFRPropertyNotAvailableException e) {
252-
// threadName = "-"; // NOI18N
253-
// }
254-
//
255-
// BrowserNode settingNode = new Setting(settingID++, settingName, settingValue, threadName, event.getInstant("eventTime").toEpochMilli(), eventNode);
256-
// eventNode.addChild(settingNode);
257-
// } catch (JFRPropertyNotAvailableException e) {
258-
// System.err.println(">>> XX " + e + " -- " + event);
259-
// }
260-
// }
187+
JFREventType type = type(typeName);
188+
if (type == null) return false; // experimental type not resolved
189+
190+
String eventName = type.getName();
191+
192+
BrowserNode categoryNode = getOrCreateCategory(this, type.getCategory());
193+
BrowserNode eventNode = categoryNode.getChild(eventName);
194+
if (eventNode == null) {
195+
eventNode = new EventType(typeName, type, categoryNode);
196+
categoryNode.addChild(eventNode);
197+
} else {
198+
((EventType)eventNode).addEvent();
199+
}
261200

262201
return false;
263202
}
264203

265-
@Override
266-
public void done() {
267-
// if (types != null) {
268-
// types.clear();
269-
// types = null;
270-
// }
271-
}
272-
273204

274205
private static BrowserNode getOrCreateCategory(BrowserNode parent, List<String> category) {
275206
List<String> names = new ArrayList(category);
@@ -288,12 +219,6 @@ private static BrowserNode getOrCreateCategory(BrowserNode parent, List<String>
288219
}
289220

290221

291-
// private String getTypeName(long typeID) {
292-
// if (types == null) visitEventTypes();
293-
// return types.get(typeID);
294-
// }
295-
296-
297222
@Override
298223
public int hashCode() {
299224
return 37;

0 commit comments

Comments
 (0)