< prev index next >

test/compiler/compilercontrol/jcmd/StressAddMultiThreadedTest.java

Print this page
rev 10239 : imported patch StressAdd

*** 25,49 **** * @test * @bug 8137167 * @summary Tests jcmd to be able to add a lot of huge directive files with * parallel executed jcmds until timeout has reached * @library /testlibrary /test/lib /compiler/testlibrary ../share / - * @ignore 8148563 * @build compiler.compilercontrol.jcmd.StressAddMultiThreadedTest * pool.sub.* pool.subpack.* sun.hotspot.WhiteBox * compiler.testlibrary.CompilerUtils * compiler.compilercontrol.share.actions.* * @run main ClassFileInstaller sun.hotspot.WhiteBox * sun.hotspot.WhiteBox$WhiteBoxPermission ! * @run main/othervm/timeout=360 compiler.compilercontrol.jcmd.StressAddMultiThreadedTest */ package compiler.compilercontrol.jcmd; import jdk.test.lib.dcmd.PidJcmdExecutor; - import java.util.List; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ExecutorService; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; --- 25,47 ---- * @test * @bug 8137167 * @summary Tests jcmd to be able to add a lot of huge directive files with * parallel executed jcmds until timeout has reached * @library /testlibrary /test/lib /compiler/testlibrary ../share / * @build compiler.compilercontrol.jcmd.StressAddMultiThreadedTest * pool.sub.* pool.subpack.* sun.hotspot.WhiteBox * compiler.testlibrary.CompilerUtils * compiler.compilercontrol.share.actions.* * @run main ClassFileInstaller sun.hotspot.WhiteBox * sun.hotspot.WhiteBox$WhiteBoxPermission ! * @run main/othervm/timeout=360 -Xmixed compiler.compilercontrol.jcmd.StressAddMultiThreadedTest */ package compiler.compilercontrol.jcmd; import jdk.test.lib.dcmd.PidJcmdExecutor; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ExecutorService; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit;
*** 52,93 **** private static final int THREADS; private final BlockingQueue<Runnable> queue; private final ExecutorService executor; static { ! THREADS = Runtime.getRuntime().availableProcessors() ! * Integer.getInteger("compiler.compilercontrol.jcmd" + ! ".StressAddMultiThreadedTest.threadFactor", 10); } public StressAddMultiThreadedTest() { queue = new ArrayBlockingQueue<>(THREADS); executor = new ThreadPoolExecutor(THREADS, THREADS, 100, TimeUnit.MILLISECONDS, queue, new ThreadPoolExecutor.CallerRunsPolicy()); } public static void main(String[] args) { new StressAddMultiThreadedTest().test(); } @Override ! protected boolean makeConnection(int pid, List<String> commands) { ! commands.forEach(command -> { if (!executor.isShutdown()) { executor.submit(() -> new PidJcmdExecutor(String.valueOf(pid)) ! .execute(command)); } - }); return !executor.isShutdown(); } @Override protected void finish() { executor.shutdown(); try { ! executor.awaitTermination(10, TimeUnit.SECONDS); } catch (InterruptedException e) { throw new Error("Interrupted while awaiting for termination: " + e, e); } executor.shutdownNow(); --- 50,90 ---- private static final int THREADS; private final BlockingQueue<Runnable> queue; private final ExecutorService executor; static { ! THREADS = (int) (Math.log(Runtime.getRuntime().availableProcessors() ! * Integer.getInteger("compiler.compilercontrol.jcmd" ! + ".StressAddMultiThreadedTest.threadFactor", 10))); } public StressAddMultiThreadedTest() { queue = new ArrayBlockingQueue<>(THREADS); executor = new ThreadPoolExecutor(THREADS, THREADS, 100, TimeUnit.MILLISECONDS, queue, new ThreadPoolExecutor.CallerRunsPolicy()); + System.out.println("INFO: stress threads: " + THREADS); } public static void main(String[] args) { new StressAddMultiThreadedTest().test(); } @Override ! protected boolean makeConnection(int pid) { if (!executor.isShutdown()) { executor.submit(() -> new PidJcmdExecutor(String.valueOf(pid)) ! .execute(nextCommand())); } return !executor.isShutdown(); } @Override protected void finish() { executor.shutdown(); try { ! executor.awaitTermination(1, TimeUnit.SECONDS); } catch (InterruptedException e) { throw new Error("Interrupted while awaiting for termination: " + e, e); } executor.shutdownNow();
< prev index next >