Exemplo n.º 1
0
        private static async Task GetBench(KVApi <byte[]> kvl)
        {
            Console.WriteLine("Starting get bench");
            var sw      = Stopwatch.StartNew();
            var counter = 0;

            await foreach (var k in kvl.Get())
            {
                counter++;
                if (counter % 10000 == 0)
                {
                    Console.WriteLine($"{counter}");
                }
            }
            sw.Stop();
            Console.WriteLine($"Runtime: {sw.Elapsed}");
        }
Exemplo n.º 2
0
        private static async Task ParallelBench(KVApi <byte[]> kvl, byte[] value, Func <byte[], byte[], Task> func)
        {
            var data = Enumerable.Range(0, Count)
                       .Select(i => Encoding.UTF8.GetBytes($"key{i}"))
                       .ToList();

            var counter = 0;
            var parts   = Partitioner
                          .Create(data)
                          .GetPartitions(8)
                          .Select(keyList => Task.Run(async delegate {
                using var iter = keyList;
                while (iter.MoveNext())
                {
                    Interlocked.Increment(ref counter);
                    if (counter % 1000 == 0)
                    {
                        Console.WriteLine($"{counter}");
                    }
                    await func(iter.Current, value);
                }
            }));
Exemplo n.º 3
0
        private static async Task BatchedBench(KVApi <byte[]> kvl, byte[] value)
        {
            var data = Enumerable.Range(0, Count)
                       .Select(i => new KeyValuePair <byte[], byte[]>(Encoding.UTF8.GetBytes($"key{i}"), value))
                       .Batch(10000)
                       .ToList();

            Console.WriteLine("Starting batched bench");
            var sw      = Stopwatch.StartNew();
            var counter = 0;

            foreach (var entries in data)
            {
                counter++;
                await kvl.Add(entries);

                if (counter % 10000 == 0)
                {
                    Console.WriteLine($"{counter}");
                }
            }
            sw.Stop();
            Console.WriteLine($"Runtime: {sw.Elapsed}");
        }