public void TestPerf() { var statements = new EPStatement[100]; var listeners = new SupportUpdateListener[statements.Length]; for (int i = 0; i < statements.Length; i++) { int secondsWindowSpan = i % 30 + 1; double percent = 0.25 + i; int id = i % 5; String text = "select symbol, min(Price) " + "from MD(id='${id}').win:time(${secondsWindowSpan})\n" + "having Price >= min(Price) * ${percent}"; text = text.Replace("${id}", Convert.ToString(id)); text = text.Replace("${secondsWindowSpan}", Convert.ToString(secondsWindowSpan)); text = text.Replace("${percent}", percent.ToString()); statements[i] = _epService.EPAdministrator.CreateEPL(text); listeners[i] = new SupportUpdateListener(); statements[i].Events += (listeners[i]).Update; } var start = PerformanceObserver.MilliTime; var count = 0; for (int i = 0; i < 10000; i++) { count++; if (i % 10000 == 0) { long now = PerformanceObserver.MilliTime; double deltaSec = (now - start) / 1000.0; double throughput = 10000.0 / deltaSec; for (int j = 0; j < listeners.Length; j++) { listeners[j].Reset(); } start = now; } SupportMarketDataIDBean bean = new SupportMarketDataIDBean("IBM", Convert.ToString(i % 5), 1); _epService.EPRuntime.SendEvent(bean); } long end = PerformanceObserver.MilliTime; long delta = end - start; Assert.IsTrue(delta < 2000, "Delta=" + delta); //Console.Out.WriteLine("total=" + count + " delta=" + delta + " per sec:" + 10000.0 / (delta / 1000.0)); }
public void Run(RegressionEnvironment env) { var statements = new EPStatement[100]; var listeners = new SupportUpdateListener[statements.Length]; for (var i = 0; i < statements.Length; i++) { var secondsWindowSpan = i % 30 + 1; var percent = 0.25 + i; var id = i % 5; var text = "@Name('s" + i + "') select Symbol, min(Price) " + "from SupportMarketDataBean(Id='${Id}')#time(${secondsWindowSpan})\n" + "having Price >= min(Price) * ${percent}"; text = text.Replace("${Id}", Convert.ToString(id)); text = text.Replace("${secondsWindowSpan}", Convert.ToString(secondsWindowSpan)); text = text.Replace("${percent}", Convert.ToString(percent)); statements[i] = env.CompileDeploy(text).Statement("s" + i); listeners[i] = new SupportUpdateListener(); statements[i].AddListener(listeners[i]); } var start = PerformanceObserver.MilliTime; var count = 0; for (var i = 0; i < 10000; i++) { count++; if (i % 10000 == 0) { var now = PerformanceObserver.MilliTime; var deltaSec = (now - start) / 1000.0; var throughput = 10000.0 / deltaSec; for (var j = 0; j < listeners.Length; j++) { listeners[j].Reset(); } start = now; } var bean = new SupportMarketDataIDBean("IBM", Convert.ToString(i % 5), 1); env.SendEventBean(bean); } var end = PerformanceObserver.MilliTime; var delta = end - start; Assert.That(delta, Is.LessThan(2000), "Delta=" + delta); //System.out.println("total=" + count + " delta=" + delta + " per sec:" + 10000.0 / (delta / 1000.0)); env.UndeployAll(); }
public void TestPerfNoDelivery() { for (int i = 0; i < 1000; i++) { String text = "select * from MD where Symbol = '" + Convert.ToString(i) + "'"; epService.EPAdministrator.CreateEPL(text); } long start = PerformanceObserver.MilliTime; for (int i = 0; i < 10000; i++) { SupportMarketDataIDBean bean = new SupportMarketDataIDBean("NOMATCH", "", 1); epService.EPRuntime.SendEvent(bean); } long end = PerformanceObserver.MilliTime; long delta = end - start; Assert.IsTrue(delta < 500, "Delta=" + delta); }