Esempio n. 1
0
        public static void RunTestParametred(AdapterVirtuoso engine, int iq = 5, int count = 100)
        {
            var paramvaluesFilePath =
                string.Format(@"..\..\..\Testing\examples\bsbm\queries\parameters\param values for{0}m {1} query.txt", 1, iq);
            var file = new FileInfo(string.Format(@"..\..\..\Testing\examples\bsbm\queries\parameters\{0}.rq", iq));

            using (StreamReader streamParameters = new StreamReader(paramvaluesFilePath))
                using (StreamReader streamQuery = new StreamReader(file.OpenRead()))
                {
                    string    qparams = "sparql " + streamQuery.ReadToEnd();
                    Stopwatch timer   = new Stopwatch();
                    for (int j = 0; j < count; j++)
                    {
                        string q = BSBmParams.QueryReadParameters(qparams, streamParameters);
                        timer.Start();
                        engine.Query(q).Count();
                        timer.Stop();
                    }

                    using (StreamWriter r = new StreamWriter(@"..\..\output.txt", true))
                    {
                        r.WriteLine();
                        r.WriteLine("one query {0}, {1} times", iq, count);
                        r.WriteLine("milions " + 1);
                        r.WriteLine("date time " + DateTime.Now);
                        r.WriteLine("total ms " + timer.ElapsedMilliseconds);
                        double l = timer.ElapsedMilliseconds / count;
                        r.WriteLine("ms на запрос в среденем " + l);
                        r.WriteLine("qps " + (int)(1000.0 / l));
                        r.WriteLine("next results count: {0}",
                                    engine.Query(BSBmParams.QueryReadParameters(qparams, streamParameters)).Count());
                    }
                }
        }
Esempio n. 2
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));
                }
            }
        }
Esempio n. 3
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));
        }