コード例 #1
0
        public void TestInvokingAplProperty()
        {
            var stopwatch   = new Stopwatch();
            var interpreter = new Dyalog.DyalogInterpreter(null, null)
            {
                SingleThreaded = true
            };
            var aplc = new AplGroup002.ReturnObjects(interpreter);

            TestContext.WriteLine($"Step, Length, ElapsedTime, ElapsedTimeAverage");
            for (int i = 0; i < 17; i++)
            {
                var length       = 10 * (int)Math.Pow(2, i % 8);
                var aplinstances = new AplGroup002.ReturnObjects[length];

                stopwatch.Restart();
                for (int j = 0; j < length; j++)
                {
                    aplinstances[j] = new AplGroup002.ReturnObjects(interpreter);
                }
                double elapsed = stopwatch.ElapsedMilliseconds;
                TestContext.WriteLine($"Create,{length,10},{elapsed,10},{elapsed / length:0.####}");

                stopwatch.Restart();
                for (int j = 0; j < length; j++)
                {
                    aplinstances[j].Name = j.ToString();
                }
                elapsed = stopwatch.ElapsedMilliseconds;
                TestContext.WriteLine($"SetProperty,{length,10},{elapsed,10},{elapsed / length:0.####}");

                stopwatch.Restart();
                for (int j = 0; j < length; j++)
                {
                    var name = aplinstances[j].Name;
                }
                elapsed = stopwatch.ElapsedMilliseconds;
                TestContext.WriteLine($"GetProperty,{length,10},{elapsed,10},{elapsed / length:0.####}");

                stopwatch.Restart();
                for (int j = 0; j < length; j++)
                {
                    var res = aplinstances[j].CallInt(j);
                }
                elapsed = stopwatch.ElapsedMilliseconds;
                TestContext.WriteLine($"CallInt,{length,10},{elapsed,10},{elapsed / length:0.####}");

                var obj = new DotNetClasses.DataItemClass();
                stopwatch.Restart();
                for (int j = 0; j < length; j++)
                {
                    var res = aplinstances[j].CallNetObject(obj);
                }
                elapsed = stopwatch.ElapsedMilliseconds;
                TestContext.WriteLine($"CallNetObject,{length,10},{elapsed,10},{elapsed / length:0.####}");
            }
        }
コード例 #2
0
        public void TestReturnFromCS()
        {
            var stopwatch   = new Stopwatch();
            var interpreter = new Dyalog.DyalogInterpreter(null, null)
            {
                SingleThreaded = true
            };
            var aplc = new AplGroup002.ReturnObjects(interpreter);

            TestContext.WriteLine($"Length, ElapsedTime, ElapsedTimeAverage");
            for (int i = 0; i < 6; i++)
            {
                var length = 1000 * (int)Math.Pow(2, i);
                stopwatch.Restart();
                aplc.ListFromCS(length);
                double elapsed = stopwatch.ElapsedMilliseconds;
                TestContext.WriteLine($"{length,10},{elapsed,10},{elapsed / length:0.####}");
            }
        }