Beispiel #1
0
        private static void RunMany(EngineVirtuoso engine)
        {
            //System.IO.StreamReader sr = new StreamReader(@"D:\Home\FactographDatabases\queries\query5param.rq");
            System.IO.StreamReader sr = new StreamReader(@"D:\Home\FactographDatabases\queries\query5param.rq");
            string   query_param      = "sparql " + sr.ReadToEnd();
            DateTime tt0 = DateTime.Now;
            //foreach (string prod in Sarr.sarr)
            //{
            //    string query_s = query_param.Replace("%ProductXYZ%", "<" + prod + ">");
            //    var res = engine.Query(query_s).ToArray();
            //    Console.WriteLine("query {0} time = {1}", res.Count(), (DateTime.Now - tt0).Ticks / 10000L); tt0 = DateTime.Now;
            //}
            int n1 = 500, s2 = 500, n2 = 500;

            string[] sa = Sarr.sarr;
            for (int i = 0; i < n1; i++)
            {
                string prod    = sa[i];
                string query_s = query_param.Replace("%ProductXYZ%", "<" + prod + ">");
                var    res     = engine.Query(query_s).ToArray();
            }
            var dur1 = (DateTime.Now - tt0).Ticks / 10000L;

            Console.WriteLine("1-st test ok. time = {0} number={1} QpS={2}", dur1, n1, (double)(n1 * 1000) / (double)dur1); tt0 = DateTime.Now;
            tt0 = DateTime.Now;
            for (int i = 0; i < n2; i++)
            {
                string prod    = sa[s2 + i];
                string query_s = query_param.Replace("%ProductXYZ%", "<" + prod + ">");
                var    res     = engine.Query(query_s).ToArray();
            }
            var dur = (DateTime.Now - tt0).Ticks / 10000L;

            Console.WriteLine("test ok. time = {0} number={1} QpS={2}", dur, n2, (double)(n2 * 1000) / (double)dur); tt0 = DateTime.Now;
        }
Beispiel #2
0
        private static void RunTests(EngineVirtuoso engine)
        {
            string[] query_files =
            {
                @"D:\Home\FactographDatabases\queries\query1.rq",
                @"D:\Home\FactographDatabases\queries\query2.rq",
                @"D:\Home\FactographDatabases\queries\query3.rq",
                @"D:\Home\FactographDatabases\queries\query4.rq",
                @"D:\Home\FactographDatabases\queries\query5.rq",
                @"D:\Home\FactographDatabases\queries\query6.rq",
                @"D:\Home\FactographDatabases\queries\query7.rq",
                @"D:\Home\FactographDatabases\queries\query8.rq",
                @"D:\Home\FactographDatabases\queries\query9.rq",
                @"D:\Home\FactographDatabases\queries\query10.rq",
                @"D:\Home\FactographDatabases\queries\query11.rq",
                @"D:\Home\FactographDatabases\queries\query12.rq",
            };
            string[] queries = new string[query_files.Length];
            for (int i = 0; i < query_files.Length; i++)
            {
                System.IO.StreamReader sr = new StreamReader(query_files[i]);
                queries[i] = "sparql " + sr.ReadToEnd();
            }
            int      f = 0, t = query_files.Length;
            DateTime tt0;

            for (int i = f; i < t; i++)
            {
                tt0 = DateTime.Now;
                string qu = queries[i];
                //if (i == 5) continue;
                if (qu.Contains("SELECT "))
                {
                    //var res = engine.Query(queries[i]).ToArray();
                    var select_qu = engine.Query(queries[i]);
                    int limit     = 3;
                    foreach (var v in select_qu)
                    {
                        int len = v.Length;
                        foreach (var ob in v)
                        {
                            Console.Write("{0} ", ob);
                        }
                        Console.WriteLine();
                        limit--;
                        if (limit <= 0)
                        {
                            break;
                        }
                    }
                    //Console.Write(" {0} ", res.Count());
                }
                else
                {
                    var res = engine.Execute(queries[i]); // engine.Query(queries[i]).ToArray();
                }
                Console.WriteLine("query {0} time = {1}", i + 1, (DateTime.Now - tt0).Ticks / 10000L); tt0 = DateTime.Now;
            }
        }
Beispiel #3
0
        private static void OneParametred(EngineVirtuoso engine, int i, int count)
        {
            using (StreamReader streamQueryParameters = new StreamReader(string.Format(
                                                                             @"..\..\..\Testing\examples\bsbm\queries\parameters\param values for{0}m {1} query.txt", 1, i)))
            {
                var file =
                    new FileInfo(string.Format(@"..\..\..\Testing\examples\bsbm\queries\parameters\{0}.rq", i));
                var    parametred = "sparql " + File.ReadAllText(file.FullName);
                double min = int.MaxValue, max = -1, average = 0;
                for (int j = 0; j < count; j++)
                {
                    var consted = BSBmParams.QueryReadNewParameters(parametred, streamQueryParameters);
                    consted = consted.Replace("16.05.2008 0:00:00", DateTime.Parse("16.04.2008 0:00:00").ToString("s"));

                    Stopwatch timer = new Stopwatch();
                    if (consted.Contains("SELECT "))
                    {
                        timer.Restart();
                        var res = engine.Query(consted).ToArray();
                        timer.Stop();
                    }
                    else
                    {
                        timer.Restart();
                        var res = engine.Execute(consted); // engine.Query(queries[i]).ToArray();
                        timer.Stop();
                    }
                    double time = SparqlTesting.GetTimeWthLast2Digits(timer);
                    average += (double)((int)(100 * time / count)) / 100;
                    if (time > max)
                    {
                        max = time;
                    }
                    if (min > time)
                    {
                        min = time;
                    }
                }
                using (StreamWriter r = new StreamWriter(@"..\..\output.txt", true))
                {
                    r.WriteLine(DateTimeOffset.Now);
                    r.WriteLine("q " + i);
                    r.WriteLine("average " + average);
                    r.WriteLine("qps " + ((double)((int)(100000 / average)) / 100));
                    r.WriteLine("min " + min);
                    r.WriteLine("max " + max);
                    r.WriteLine("memory " + GC.GetTotalMemory(false));
                }
            }
        }
Beispiel #4
0
        public static void RunBerlinsWithConstants(EngineVirtuoso Store)
        {
            double[] memoryUsage = new double[50];
            long[]   totalrun    = new long[50];
            Console.WriteLine("bsbm with constants");
            var timer = new Stopwatch();

            //  for (
            int i = 49;

            //i < 12; i++)
            {
                string file = string.Format(@"..\..\..\Testing\examples\bsbm\queries\with constants\{0}.rq", i + 1);
                var    qu   = "sparql " + File.ReadAllText(file);
                GC.Collect();

                if (qu.Contains("SELECT "))
                {
                    timer.Restart();

                    var select_qu = Store.Query(qu);
                    foreach (var objectse in select_qu)
                    {
                    }

                    timer.Stop();
                }
                else
                {
                    timer.Restart();
                    Store.Execute(qu);
                    timer.Stop();
                }
                totalrun[i] += timer.ElapsedMilliseconds > 10
                    ? timer.ElapsedMilliseconds
                    : ((int)(timer.ElapsedTicks / 10000) * 100) / 100;
                memoryUsage[i] = GC.GetTotalMemory(false);
                //results[i]=
            }
            using (StreamWriter r = new StreamWriter(@"..\..\output.txt", true))
            {
                r.WriteLine("date time " + DateTime.Now);
                r.WriteLine("memory usage (bytes)" + string.Join(", ", memoryUsage));
                r.WriteLine("run " + string.Join(", ", totalrun));
                r.WriteLine("total run " + totalrun.Sum());
            }
        }
Beispiel #5
0
        private static void ViruosoBSBmParameters(EngineVirtuoso engine)
        {
            long[]   results        = new long[12];
            double[] minimums       = Enumerable.Repeat(double.MaxValue, 12).ToArray();
            double[] maximums       = new double[12];
            double   maxMemoryUsage = 0;

            Console.WriteLine("antrl parametered");
            int i = 0;

            int Millions = 1;

            using (StreamReader streamQueryParameters = new StreamReader(string.Format(@"..\..\..\Testing\examples\bsbm\queries\parameters\param values for{0} m.txt", Millions)))
            {
                int j;
                for (j = 0; j < 500; j++)
                {
                    for (i = 0; i < 12; i++)
                    {
                        var file = new FileInfo(string.Format(@"..\..\..\Testing\examples\bsbm\queries\parameters\{0}.rq", i + 1));

                        using (StreamReader sr = new StreamReader(file.FullName))
                        {
                            var queryReadParameters = "sparql " +
                                                      BSBmParams.QueryReadParameters(sr.ReadToEnd(),
                                                                                     streamQueryParameters);

                            queryReadParameters = queryReadParameters.Replace("18.04.2008 0:00:00",
                                                                              DateTime.Parse("18.04.2008 0:00:00").ToString("s"));

                            if (queryReadParameters.Contains("SELECT "))
                            {
                                var res = engine.Query(queryReadParameters).ToArray();
                            }
                            else
                            {
                                var res = engine.Execute(queryReadParameters); // engine.Query(queries[i]).ToArray();
                            }
                        }
                    }
                }
                for (j = 0; j < 500; j++)
                {
                    for (i = 0; i < 12; i++)
                    {
                        var totalMilliseconds = 0;//OneParametred(engine, i, TODO);
                        if (minimums[i] > totalMilliseconds)
                        {
                            minimums[i] = totalMilliseconds;
                        }
                        if (maximums[i] < totalMilliseconds)
                        {
                            maximums[i] = totalMilliseconds;
                        }
                        results[i++] += totalMilliseconds;
                        var memory = GC.GetTotalMemory(false);
                        if (maxMemoryUsage < memory)
                        {
                            maxMemoryUsage = memory;
                        }
                        //File.WriteAllText(Path.ChangeExtension(file.FullName, ".txt"), resultString);
                        //.Save(Path.ChangeExtension(file.FullName,".xml"));
                    }
                }
            }
            using (StreamWriter r = new StreamWriter(@"..\..\output.txt", true))
            {
                r.WriteLine("mils " + Millions);
                r.WriteLine(string.Join(", ", results.Select(l => 500 * 1000 / l)));
                r.WriteLine("minimums " + string.Join(", ", minimums));
                r.WriteLine("maximums " + string.Join(", ", maximums));
                r.WriteLine("max memory usage " + maxMemoryUsage);
            }
            Console.WriteLine("average " + string.Join(", ", results.Select(l => 500 * 1000 / l)));
            Console.WriteLine("minimums " + string.Join(", ", minimums));
            Console.WriteLine("maximums " + string.Join(", ", maximums));
        }