Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 3
0
        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);
        }