Esempio n. 1
0
 static When_cache_created_with_desktop_factory()
 {
     var types = new List <Type> {
         typeof(TestObject), typeof(SomeData), typeof(SomeData2)
     };
     var cache = DesktopCacheFactory.GetCache(types, PerfCacheName).Result;
 }
Esempio n. 2
0
        public async Task custom_container_and_config_cache_construction_should_work()
        {
            var cacheContainer = new CacheContainer();

            cacheContainer.Register <ILogger, NLogCacheLogger>().WithValue("name", "CacheLogger");
            cacheContainer.Register <IVersionProvider, EntryAssemblyVersionProvider>();
            cacheContainer.Register <IStorage, DesktopStorage>().WithValue("cacheName", "someCacheName");
            cacheContainer.Register <ISerializer, ProtoBufSerializer>().WithDependency("storage", typeof(IStorage).FullName).WithValue("userTypes", null);

            var cacheConfig = new CacheConfiguration(1024, 5, 1024, 5, TimeSpan.FromMinutes(1));

            var cache = await DesktopCacheFactory.GetCache(cacheContainer, cacheConfig);

            await cache.Set("key1", "stringValue");

            cache.Size.Should().BeGreaterThan(0);
            cache.Count.Should().Be(1);
            cache.Get <string>("key1").Result.Value.Should().Be("stringValue");
            await cache.Remove("key1");

            cache.Count.Should().Be(0);
            cache.Size.Should().Be(0);
            cache.Get <string>("key1").Result.Should().BeNull();
            await cache.Clear();
        }
Esempio n. 3
0
        public async Task PerfCreateEmptyCache()
        {
            var sw    = Stopwatch.StartNew();
            var cache = await DesktopCacheFactory.GetCache(null, PerfCacheName);

            sw.Stop();
            Console.WriteLine("Elapsed:" + sw.ElapsedMilliseconds);
        }
Esempio n. 4
0
        public static async Task PrepareCache(int N)
        {
            var constractCachename = "construct_cache";
            await PerformanceWrite.Write100KbByteArrays(N, constractCachename);

            var sw = Stopwatch.StartNew();

            var cache = await DesktopCacheFactory.GetCache(null, constractCachename);

            cache.Size.Should().BeGreaterThan(0);
            sw.Stop();
            Console.WriteLine("Elapsed on PrepareCache:" + sw.ElapsedMilliseconds);
        }
Esempio n. 5
0
        public static async Task PrepareCache(int N)
        {
            var constructCachename = "construct_cache" + N;

            Write100UserTypesArrays(N, constructCachename).Wait();

            var sw = Stopwatch.StartNew();

            using (var cache = await DesktopCacheFactory.GetCache(null, constructCachename))
            {
                cache.Size.Should().BeGreaterThan(0);
                sw.Stop();
                Console.WriteLine("Elapsed on PrepareCache:" + sw.ElapsedMilliseconds);
            }
        }
Esempio n. 6
0
        public async Task named_cache_construction_should_work()
        {
            var cache = await DesktopCacheFactory.GetCache(null, "cache2");

            await cache.Set("key1", "stringValue");

            cache.Size.Should().BeGreaterThan(0);
            cache.Count.Should().Be(1);
            cache.Get <string>("key1").Result.Value.Should().Be("stringValue");
            await cache.Remove("key1");

            cache.Count.Should().Be(0);
            cache.Size.Should().Be(0);
            cache.Get <string>("key1").Result.Should().BeNull();
            await cache.Clear();
        }
Esempio n. 7
0
        public static async Task Write100UserTypesArrays(int numberOfChunks, string cacheName = null)
        {
            var userTypeArrays = PerfHelpers.GetUserTypeArrays(numberOfChunks);

            using (var cache = await DesktopCacheFactory.GetCache(null, cacheName ?? PerfCacheName + numberOfChunks))
            {
                await cache.Clear();

                var sw = Stopwatch.StartNew();
                for (var i = 0; i < userTypeArrays.Length; i++)
                {
                    cache.Set(i.ToString(), userTypeArrays[i]).Wait();
                }
                sw.Stop();
                Console.WriteLine("Elapsed:" + sw.ElapsedMilliseconds);
            }
        }
Esempio n. 8
0
        public async Task custom_config_cache_construction_should_work()
        {
            var cacheConfig = new CacheConfiguration(1024, 5, 1024, 5, TimeSpan.FromMinutes(1));

            var cache = await DesktopCacheFactory.GetCache(cacheConfig, null, "cache2");

            await cache.Set("key1", "stringValue");

            cache.Size.Should().BeGreaterThan(0);
            cache.Count.Should().Be(1);
            cache.Get <string>("key1").Result.Value.Should().Be("stringValue");
            await cache.Remove("key1");

            cache.Count.Should().Be(0);
            cache.Size.Should().Be(0);
            cache.Get <string>("key1").Result.Should().BeNull();
            await cache.Clear();
        }
Esempio n. 9
0
        public static async Task Get100KbByteArrays(int numberOfChunks)
        {
            var userTypeArrays = PerfHelpers.GetUserTypeArrays(numberOfChunks);
            var cache          = await DesktopCacheFactory.GetCache(null, "cache_03");

            await cache.Clear();

            var length = userTypeArrays.Length;

            for (var i = 0; i < length; i++)
            {
                cache.Set(i.ToString(), userTypeArrays[i]).Wait();
            }
            var sw = Stopwatch.StartNew();

            for (var i = 0; i < length; i++)
            {
                var value = await cache.Get <TestObject>(i.ToString());
            }
            sw.Stop();
            Console.WriteLine("Elapsed on get:" + sw.ElapsedMilliseconds);
        }
Esempio n. 10
0
        public static async Task Get100KbByteArrays(int numberOfChunks)
        {
            var byteArrays = PerfHelpers.GetByteArrays(numberOfChunks);
            var cache      = await DesktopCacheFactory.GetCache(null, PerfCacheName);

            await cache.Clear();

            var length = byteArrays.Length;

            for (var i = 0; i < length; i++)
            {
                cache.Set(i.ToString(), byteArrays[i]).Wait();
            }
            var sw = Stopwatch.StartNew();

            for (var i = 0; i < length; i++)
            {
                cache.Get <byte[]>(i.ToString()).Wait();
                //bytes.Value.Should().HaveCount(102400);
            }
            sw.Stop();
            Console.WriteLine("Elapsed on get:" + sw.ElapsedMilliseconds);
        }
Esempio n. 11
0
        public async Task usesr_types_storing_cache_construction_should_work()
        {
            var types = new List <Type> {
                typeof(SomeData), typeof(SomeData2)
            };
            var cache = await DesktopCacheFactory.GetCache(null, PerfCacheName);

            await cache.Clear();

            await cache.Set("key1", "stringValue");

            cache.Size.Should().BeGreaterThan(0);
            cache.Count.Should().Be(1);
            cache.Get <string>("key1").Result.Value.Should().Be("stringValue");
            await cache.Remove("key1");

            cache.Count.Should().Be(0);
            cache.Size.Should().Be(0);
            cache.Get <string>("key1").Result.Should().BeNull();
            await cache.Clear();

            var someData = new SomeData2 {
                Entries = new Dictionary <string, int> {
                    { "q", 45 }, { "w", 34 }
                }, StringProperty = "Some string of proto"
            };
            await cache.Set("SomeProto", someData);

            await cache.Set("SomeProto2", someData);

            var sd2 = cache.Get <SomeData2>("SomeProto").Result;

            sd2.Value.StringProperty.Should().Be("Some string of proto");
            sd2.Value.Entries.ShouldBeEquivalentTo(new Dictionary <string, int> {
                { "q", 45 }, { "w", 34 }
            });
        }