You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by jt...@apache.org on 2022/05/30 05:10:05 UTC
[netbeans] branch master updated: Including additional methods into knownBLockingMethods to match classes as of JDK-11
This is an automated email from the ASF dual-hosted git repository.
jtulach pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push:
new e9b28713a3 Including additional methods into knownBLockingMethods to match classes as of JDK-11
new ff09cf74c3 Merge pull request #4168 from jtulach/jtulach/MoreKnownBlockingMethods
e9b28713a3 is described below
commit e9b28713a3b62021a4dc58f3db53ba1c46c206e0
Author: Jaroslav Tulach <ja...@apidesign.org>
AuthorDate: Sat May 28 08:26:05 2022 +0200
Including additional methods into knownBLockingMethods to match classes as of JDK-11
---
.travis.yml | 1 +
.../results/cpu/StackTraceSnapshotBuilder.java | 6 ++
.../modules/profiler/SampledCPUSnapshotTest.java | 85 +++++++++++++++++++++
.../netbeans/modules/profiler/jdk11-sample1.npss | Bin 0 -> 30502 bytes
4 files changed, 92 insertions(+)
diff --git a/.travis.yml b/.travis.yml
index cb35d64a56..d654370c08 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -495,6 +495,7 @@ matrix:
- nbbuild/travis/ant.sh $OPTS build
script:
- ant $OPTS -f profiler/profiler.oql test
+ - ant $OPTS -f profiler/profiler test-unit
- name: Test webcommon modules
jdk: openjdk8
diff --git a/profiler/lib.profiler/src/org/netbeans/lib/profiler/results/cpu/StackTraceSnapshotBuilder.java b/profiler/lib.profiler/src/org/netbeans/lib/profiler/results/cpu/StackTraceSnapshotBuilder.java
index 0f1d3e0d80..2ead829cff 100644
--- a/profiler/lib.profiler/src/org/netbeans/lib/profiler/results/cpu/StackTraceSnapshotBuilder.java
+++ b/profiler/lib.profiler/src/org/netbeans/lib/profiler/results/cpu/StackTraceSnapshotBuilder.java
@@ -77,8 +77,14 @@ public class StackTraceSnapshotBuilder {
new MethodInfo("sun.nio.ch.KQueueArrayWrapper","kevent0[native](int, long, int, long) : int"), // NOI18N
new MethodInfo("sun.nio.ch.WindowsSelectorImpl$SubSelector","poll0[native]"), // NOI18N
new MethodInfo("sun.nio.ch.WindowsSelectorImpl$SubSelector","poll0[native](long, int, int[], int[], int[], long) : int"), // NOI18N
+ new MethodInfo("sun.nio.ch.EPoll","wait[native]"), // NOI18N
new MethodInfo("java.net.PlainSocketImpl", "socketConnect[native]"), // NOI18N
new MethodInfo("java.net.PlainSocketImpl", "socketConnect[native](java.net.InetAddress, int, int) : void"), // NOI18N
+ new MethodInfo("java.net.SocketInputStream", "socketRead0[native]"), // NOI18N
+ new MethodInfo("jdk.internal.misc.Unsafe", "park[native]"), // NOI18N
+ new MethodInfo("java.lang.ref.Reference", "waitForReferencePendingList[native]"), // NOI18N
+ new MethodInfo("java.io.FileInputStream", "readBytes[native]"), // NOI18N
+ new MethodInfo("sun.management.ThreadImpl", "dumpThreads0[native]"), // NOI18N
});
private InstrumentationFilter filter;
diff --git a/profiler/profiler/test/unit/src/org/netbeans/modules/profiler/SampledCPUSnapshotTest.java b/profiler/profiler/test/unit/src/org/netbeans/modules/profiler/SampledCPUSnapshotTest.java
new file mode 100644
index 0000000000..898b7692ac
--- /dev/null
+++ b/profiler/profiler/test/unit/src/org/netbeans/modules/profiler/SampledCPUSnapshotTest.java
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.netbeans.modules.profiler;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.Map;
+import java.util.TreeMap;
+import org.junit.Test;
+import static org.junit.Assert.*;
+import org.netbeans.lib.profiler.results.ResultsSnapshot;
+import org.netbeans.lib.profiler.results.cpu.CPUCCTContainer;
+import org.netbeans.lib.profiler.results.cpu.CPUResultsSnapshot;
+import org.openide.filesystems.FileObject;
+import org.openide.filesystems.FileUtil;
+
+public class SampledCPUSnapshotTest {
+
+ public SampledCPUSnapshotTest() {
+ }
+
+ @Test
+ public void testGetCPUSnapshot() throws Exception {
+ final String name = "jdk11-sample1.npss";
+ final SampledCPUSnapshot snapshot = loadSnapshot(name);
+ assertEquals(442, snapshot.getSamplesCount());
+
+ LoadedSnapshot interval = snapshot.getCPUSnapshot(88, 103);
+ Map<String, Long> timesByThreadName = timesByThreadName(interval);
+
+ assertEquals(Long.valueOf(5053), timesByThreadName.remove("command-pool-6"));
+ assertEquals(Long.valueOf(5053), timesByThreadName.remove("logging-service-client-akka.actor.default-dispatcher-5"));
+ assertEquals(Long.valueOf(4151), timesByThreadName.remove("pool-2-thread-1"));
+ assertEquals(Long.valueOf(5506), timesByThreadName.remove("scala-execution-context-global-57"));
+ assertEquals(Long.valueOf(10788), timesByThreadName.remove("searcher.db-1"));
+ assertEquals(Long.valueOf(50314), timesByThreadName.remove("job-pool-1"));
+
+ assertTrue("No other threads working: " + timesByThreadName, timesByThreadName.isEmpty());
+ }
+
+ private static Map<String, Long> timesByThreadName(LoadedSnapshot interval) {
+ ResultsSnapshot result = interval.getSnapshot();
+ assertEquals(CPUResultsSnapshot.class, result.getClass());
+ Map<String,Long> timesByThreadName = new TreeMap<>();
+ CPUResultsSnapshot cpu = (CPUResultsSnapshot) result;
+ for (int id : cpu.getThreadIds()) {
+ String threadName = cpu.getThreadNameForId(id);
+ CPUCCTContainer container = cpu.getContainerForThread(id, 0);
+ long t1 = container.getWholeGraphNetTime1();
+ if (t1 > 0) {
+ Long prev = timesByThreadName.put(threadName, t1);
+ assertNull("There should be just a single " + threadName, prev);
+ }
+ }
+ return timesByThreadName;
+ }
+
+ private static SampledCPUSnapshot loadSnapshot(final String name) throws IOException {
+ InputStream is = SampledCPUSnapshotTest.class.getResourceAsStream(name);
+ assertNotNull("Sample npss file found", is);
+ FileObject sample = FileUtil.createMemoryFileSystem().getRoot().createData("sample.npss");
+ try (OutputStream os = sample.getOutputStream()) {
+ FileUtil.copy(is, os);
+ }
+ return new SampledCPUSnapshot(sample);
+ }
+
+}
diff --git a/profiler/profiler/test/unit/src/org/netbeans/modules/profiler/jdk11-sample1.npss b/profiler/profiler/test/unit/src/org/netbeans/modules/profiler/jdk11-sample1.npss
new file mode 100644
index 0000000000..cd8ed663b1
Binary files /dev/null and b/profiler/profiler/test/unit/src/org/netbeans/modules/profiler/jdk11-sample1.npss differ
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists