示例#1
0
 /// <summary>
 /// запускает Build и  замеряет время.
 /// </summary>
 /// <param name="graph"> тестируемый граф должен реализовать интерфейс <seealso cref="RDFCommon.IGraph<string,string,ObjectVariants>"/></param>
 /// <param name="turtleFileName"> путь к внешнему файлу ttl</param>
 public static void TestReadTtl(this IGraph <Triple <string, string, ObjectVariants> > graph, string turtleFileName)
 {
     Performance.ComputeTime(() =>
                             graph.Build(
                                 ReadTripleStringsFromTurtle.LoadGraph(turtleFileName)),
                             "build " + turtleFileName + " ", true);
 }
示例#2
0
 /// <summary>
 /// запускает Build и  замеряет время.
 /// </summary>
 /// <param name="graph"> тестируемый граф должен реализовать интерфейс <see cref="RDFCommon.IGraph<string,string,ObjectVariants>"/></param>
 /// <param name="millions">в данных пока предполагаются варианты: 1, 10, 100, 1000</param>
 public static void TestReadTtl(this IGraph <Triple <string, string, ObjectVariants> > graph, int millions)
 {
     Performance.ComputeTime(() =>
                             graph.Build(
                                 ReadTripleStringsFromTurtle.LoadGraph(
                                     Config.Source_data_folder_path + millions + ".ttl")), "build " + millions + ".ttl ", true);
 }
示例#3
0
        private static void MainPersons(string[] args)
        {
            TestingPhotoPersons.Npersons = 40 * 1000;
            string path = "../../../Databases/int based/" + TestingPhotoPersons.Npersons / 1000 + "/";

            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            StoreCascadingInt store = new StoreCascadingInt(path);

            using (StreamWriter perfomance = new StreamWriter("../../Perfomance.txt"))
                perfomance.WriteLine(TestingPhotoPersons.Npersons);
            if (true)
            {
                Performance.ComputeTime(() => Reload(store), "load " + TestingPhotoPersons.Npersons + " ", true);
            }
            TestingPhotoPersons.Run((q) =>
            {
                var sparqlQuery = SparqlQueryParser.Parse(store, q).Run();
                if (sparqlQuery.ResultType == ResultType.Ask)
                {
                    var b = sparqlQuery.AnyResult;
                }
                else
                {
                    sparqlQuery.Results.Count();
                }
            });
        }
示例#4
0
 /// <summary>
 /// запускает Build и  замеряет время.
 ///    использует <see cref="TripleGeneratorBufferedParallel"/>
 ///
 /// </summary>
 /// <param name="graph"> тестируемый граф должен реализовать интерфейс <see cref="RDFCommon.IGraph<string,string,ObjectVariants>"/></param>
 /// <param name="millions">в данных пока предполагаются варианты: 1, 10, 100, 1000</param>
 public static void TestReadTtl_Cocor(this IGraph <Triple <string, string, ObjectVariants> > graph, int millions)
 {
     Performance.ComputeTime(() =>
     {
         var generator = new TripleGeneratorBufferedParallel(Config.Source_data_folder_path + millions + ".ttl", "g");
         graph.Build(generator);
     },
                             "build " + millions + ".ttl ", true);
 }
示例#5
0
        private static void RunAllBerlinByOne()
        {
            var Store = new StoreCascadingInt("../../../Databases/int based/");

            Performance.ComputeTime(() => Store.ReloadFrom(Config.Source_data_folder_path + "1M.ttl"), "load 1млн ", true);
            //  return;
            //  Store.ActivateCache();
            Store.Start();

            //for (int i = 0; i < 12; i++)
            //{
            //    SparqlTesting.OneBerlinParametrized(Store, i + 1, 100);
            //}
        }
示例#6
0
        /// <summary>
        /// Замеряет время:
        ///  1) поток всех триплетов ограничен 100 триплетами;
        ///  2) заменяет субъекты объектами, если они uri и проводит поиск;
        ///  3) поиск только по предикаьам взятым из первых 100 триплетов;
        /// </summary>
        /// <typeparam name="Ts"></typeparam>
        /// <typeparam name="Tp"></typeparam>
        /// <typeparam name="To"></typeparam>
        /// <param name="graph"></param>
        public static void TestSearch(this IGraph <Triple <string, string, ObjectVariants> > graph)
        {
            var all = graph.Search();

            Triple <string, string, ObjectVariants>[] ts100 = null;
            Performance.ComputeTime(() =>
            {
                ts100 = all.Take(100).ToArray();
            }, "get first's 100 triples ", true);
            Performance.ComputeTime(() =>
            {
                foreach (var t in ts100)
                {
                    if (t.Object.Variant == ObjectVariantEnum.Iri)
                    {
                        graph.Search(((OV_iri)t.Object).UriString).ToArray();
                    }
                }
            }, "search by object as subject from first's 100 triples ", true);
            Performance.ComputeTime(() =>
            {
                foreach (var t in ts100)
                {
                    graph.Search(predicate: t.Predicate).ToArray();
                }
            }, "search by predicate from first's 100 triples ", true);
            Performance.ComputeTime(() =>
            {
                foreach (var t in ts100)
                {
                    var triples = graph.Search(t.Subject, t.Predicate, t.Object).ToArray();
                    if (!triples.All(
                            tt => tt.Subject == t.Subject && tt.Predicate == t.Predicate && tt.Object == t.Object))
                    {
                        throw new Exception();
                    }
                }
            }, "search by subject predicate and object from first's 100 triples, compare correctness ", true);
        }
        public static void Run(Action <string> runQueryReturnCount)
        {
            //Console.WriteLine(runQueryReturnCount(QGetPerson3123Info()));
            Performance.ComputeTime(() =>
            {
                for (int i = 0; i < 1000; i++)
                {
                    runQueryReturnCount(QGetPersonInfo());
                }
            }, "1000 sPO ok. duration=", true);

            Performance.ComputeTime(() =>
            {
                for (int i = 0; i < 1000; i++)
                {
                    runQueryReturnCount(QGetPersonName());
                }
            }, string.Format("1000 spO ok. duration="), true);


            Performance.ComputeTime(() =>
            {
                for (int i = 0; i < 1000; i++)
                {
                    runQueryReturnCount(QContainsPersonType());
                    //if (!exists) throw new Exception("438723");
                }
            }, "1000 spo ok duration=", true);

            Performance.ComputeTime(() =>
            {
                for (int i = 0; i < 1000; i++)
                {
                    runQueryReturnCount(QGetPersonPhotoNames());
                }
            }, string.Format("1000 portraits ok. duration="), true);
        }
示例#8
0
 /// <summary>
 /// запускает Build и  замеряет время.
 /// </summary>
 /// <param name="graph"> тестируемый граф должен реализовать интерфейс <seealso cref="RDFCommon.IGraph<string,string,ObjectVariants>"/></param>
 /// <param name="turtleFileName"> путь к внешнему файлу ttl</param>
 public static void TestReadTtl_Cocor(this IGraph <Triple <string, string, ObjectVariants> > graph, string turtleFileName)
 {
     Performance.ComputeTime(() =>
                             graph.Build(new TripleGeneratorBufferedParallel(turtleFileName, "g")),
                             "build " + turtleFileName + " ", true);
 }