📄 embedded.java
字号:
/*------------------------------------------------------------------------------Name: Embedded.javaProject: xmlBlaster.orgCopyright: xmlBlaster.org, see xmlBlaster-LICENSE file------------------------------------------------------------------------------*/package org.xmlBlaster.test.memoryleak;import java.util.logging.Logger;import java.util.logging.Level;import org.xmlBlaster.util.ThreadLister;import org.xmlBlaster.util.Global;import org.xmlBlaster.util.XmlBlasterException;import org.xmlBlaster.util.EmbeddedXmlBlaster;import org.xmlBlaster.engine.runlevel.RunlevelManager;import org.xmlBlaster.test.Util;/** * Here we start stop an embeded xmlBlaster instance to test memory an thread consumption. */public class Embedded{ private static String ME = "Embedded"; private final Global glob; private static Logger log = Logger.getLogger(Embedded.class.getName()); private int serverPort = 7615; /** * Constructs the Embedded object. */ public Embedded(Global glob) { this.glob = glob; Thread.currentThread().setName("EmbeddedTest.MainThread"); } /** * Loop with start and stop embeded xmlBlaster. */ protected void testLoop() { boolean interactive = this.glob.getProperty().get("interactive", false); long sleep = this.glob.getProperty().get("sleep", 1000L); int n = 100; for(int i=0; i<n; i++) { if (interactive) { log.info("Hit a key to start embedded xmlBlaster #" + (i+1) + "/" + n); try { System.in.read(); } catch(java.io.IOException e) {} } else { log.info("********* Start embedded xmlBlaster #" + (i+1) + "/" + n); } if (i==0) { //System.gc(); log.info("Threads before starting #" + (i+1) + " num=" + ThreadLister.countThreads()); ThreadLister.listAllThreads(System.out); } //this.glob.init(Util.getOtherServerPorts(serverPort)); EmbeddedXmlBlaster embeddedXmlBlaster = EmbeddedXmlBlaster.startXmlBlaster(this.glob); log.info("Threads with alive server #" + (i+1) + " num=" + ThreadLister.countThreads()); ThreadLister.listAllThreads(System.out); if (interactive) { log.info("Hit a key to stop embedded xmlBlaster #" + (i+1) + "/" + n); try { System.in.read(); } catch(java.io.IOException e) {} } else { log.info("********* Stop embedded xmlBlaster #" + (i+1) + "/" + n); } embeddedXmlBlaster.stopServer(true); embeddedXmlBlaster = null; //Util.resetPorts(); log.info("Threads after stopping #" + (i+1) + " num=" + ThreadLister.countThreads()); ThreadLister.listAllThreads(System.out); if (!interactive) { try { Thread.sleep(sleep); } catch( InterruptedException e) {} } } log.info("Done"); } /** * Invoke: * <pre> * java org.xmlBlaster.test.memoryleak.Embedded -interactive true * <pre> */ public static void main(String args[]) { Embedded embedded = new Embedded(new Global(args)); embedded.testLoop(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -