Example #1
0
        private static void Example(int tickCount, KeysType keysType)
        {
            Stopwatch    sw        = new Stopwatch();
            const string FILE_NAME = "test.stsdb4";

            File.Delete(FILE_NAME);

            //insert
            Console.WriteLine("Inserting...");
            sw.Reset();
            sw.Start();
            int c = 0;

            using (IStorageEngine engine = STSdb.FromFile(FILE_NAME))
            {
                ITable <long, Tick> table = engine.OpenXTable <long, Tick>("table");

                foreach (var kv in TicksGenerator.GetFlow(tickCount, keysType)) //generate random records
                {
                    table[kv.Key] = kv.Value;

                    c++;
                    if (c % 100000 == 0)
                    {
                        Console.WriteLine("Inserted {0} records", c);
                    }
                }

                engine.Commit();
            }
            sw.Stop();
            Console.WriteLine("Insert speed:{0} rec/sec", sw.GetSpeed(tickCount));

            //read
            Console.WriteLine("Reading...");
            sw.Reset();
            sw.Start();
            c = 0;
            using (IStorageEngine engine = STSdb.FromFile(FILE_NAME))
            {
                ITable <long, Tick> table = engine.OpenXTable <long, Tick>("table");

                foreach (var row in table) //table.Forward(), table.Backward()
                {
                    //Console.WriteLine("{0} {1}", row.Key, row.Value);

                    c++;
                    if (c % 100000 == 0)
                    {
                        Console.WriteLine("Read {0} records", c);
                    }
                }
            }
            sw.Stop();
            Console.WriteLine("Read speed:{0} records", sw.GetSpeed(c));
        }
Example #2
0
        private static void Example(int tickCount, KeysType keysType)
        {
            Stopwatch sw = new Stopwatch();
            const string FILE_NAME = "test.stsdb4";
            File.Delete(FILE_NAME);

            //insert
            Console.WriteLine("Inserting...");
            sw.Reset();
            sw.Start();
            int c = 0;
            using (IStorageEngine engine = STSdb.FromFile(FILE_NAME))
            {
                ITable<long, Tick> table = engine.OpenXTable<long, Tick>("table");

                foreach (var kv in TicksGenerator.GetFlow(tickCount, keysType)) //generate random records
                {
                    table[kv.Key] = kv.Value;

                    c++;
                    if (c % 100000 == 0)
                        Console.WriteLine("Inserted {0} records", c);
                }

                engine.Commit();
            }
            sw.Stop();
            Console.WriteLine("Insert speed:{0} rec/sec", sw.GetSpeed(tickCount));

            //read
            Console.WriteLine("Reading...");
            sw.Reset();
            sw.Start();
            c = 0;
            using (IStorageEngine engine = STSdb.FromFile(FILE_NAME))
            {
                ITable<long, Tick> table = engine.OpenXTable<long, Tick>("table");

                foreach (var row in table) //table.Forward(), table.Backward()
                {
                    //Console.WriteLine("{0} {1}", row.Key, row.Value);

                    c++;
                    if (c % 100000 == 0)
                        Console.WriteLine("Read {0} records", c);
                }
            }
            sw.Stop();
            Console.WriteLine("Read speed:{0} records", sw.GetSpeed(c));
        }
Example #3
0
        private static void Test()
        {
            int count = 20000000;

            string fileName = "test.stsdb4";
            //File.Delete(fileName);

            Random    random = new Random();
            Stopwatch sw     = new Stopwatch();

            double progress = 0.0;

            //insert
            Console.WriteLine(String.Format("Inserting {0} records...", count));
            sw.Start();
            using (var engine = STSdb.FromFile(fileName))
            {
                var index = engine.OpenXTable <int, int>("table");

                for (int i = 0; i < count; i++)
                {
                    int key = random.Next(0, int.MaxValue);
                    int rec = i;

                    index[key] = rec;

                    double p = Math.Round(100.0 * (i + 1) / count);
                    if (p - progress >= 5)
                    {
                        Console.Write(String.Format("{0}% ", p));
                        progress = p;
                    }
                }

                engine.Commit();

                Console.WriteLine("{0} rec/sec", sw.GetSpeed(count));
                Console.WriteLine("~{0}MB", Math.Round(engine.DatabaseSize / (1024 * 1024.0)));
            }
            sw.Stop();

            progress = 0;

            //read
            Console.WriteLine("Reading...");
            sw.Reset();
            sw.Start();
            int c = 0;

            using (var engine = STSdb.FromFile(fileName))
            {
                var index = engine.OpenXTable <int, int>("table");

                int key = -1;
                foreach (var kv in index)
                {
                    if (key > kv.Key)
                    {
                        throw new Exception();
                    }

                    key = kv.Key;
                    c++;

                    double p = Math.Round(100.0 * c / count);
                    if (p - progress >= 5)
                    {
                        Console.Write(String.Format("{0}% ", p));
                        progress = p;
                    }
                }

                Console.WriteLine(String.Format("{0} records", c));
                Console.WriteLine("{0} rec/sec", sw.GetSpeed(count));
                Console.WriteLine("~{0}MB", Math.Round(engine.DatabaseSize / (1024 * 1024.0)));
            }
            sw.Stop();

            Thread.Sleep(100000);
        }
Example #4
0
        public float GetSpeed()
        {
            Touch();

            return(stopwatch.GetSpeed());
        }