Пример #1
0
        public void SpeedEvalPropertyGetAndSet()
        {
            DbConfig dbInfo   = null;
            var      timeSpan = Measure(() =>
            {
                dbInfo    = Measure("Generate DbConfig", () => new DbConfig(true));
                var cache = Measure("Generate Class Cache",
                                    () => dbInfo.GetOrCreateClassInfoCache(typeof(ClassSpeedMeasurement)));
                var dbPropertyInfoCache = Measure("Lookup Property", () => cache.Propertys["PropString"]);

                ClassSpeedMeasurement instance = Measure("Object Creation", () => cache.DefaultFactory());
                Measure("Set Value", () => dbPropertyInfoCache.Setter.Invoke(instance, "Value"));
                var invoke = Measure("Get Value", () => dbPropertyInfoCache.Getter.Invoke(instance));
            });

            Console.WriteLine("Time: {0}", timeSpan);

            var followUp = Measure(() =>
            {
                dbInfo    = Measure("Generate DbConfig", () => new DbConfig(true));
                var cache = Measure("Generate Class Cache",
                                    () => dbInfo.GetOrCreateClassInfoCache(typeof(ClassSpeedMeasurement)));
                var dbPropertyInfoCache = Measure("Lookup Property", () => cache.Propertys["PropString"]);

                ClassSpeedMeasurement instance = Measure("Object Creation", () => cache.DefaultFactory());
                Measure("Set Value", () => dbPropertyInfoCache.Setter.Invoke(instance, "Value"));
                var invoke = Measure("Get Value", () => dbPropertyInfoCache.Getter.Invoke(instance));
            });

            Console.WriteLine("Reuse DbInfo Time: {0}", followUp);
        }
Пример #2
0
        private TimeSpan OverallSpeedEvalPropertyGetAndSet(DbConfig dbInfo)
        {
            return(Measure(() =>
            {
                var cache = dbInfo.GetOrCreateClassInfoCache(typeof(ClassSpeedMeasurement));
                var dbPropertyInfoCache = cache.Propertys["PropString"];

                ClassSpeedMeasurement instance = cache.DefaultFactory();
                dbPropertyInfoCache.Setter.Invoke(instance, "Value");
                var invoke = dbPropertyInfoCache.Getter.Invoke(instance);
            }));
        }
Пример #3
0
        public void OverallSpeedEvalPropertyGetAndSetTest()
        {
            DbConfig dbInfo   = null;
            var      timeSpan = Measure(() =>
            {
                dbInfo    = new DbConfig(true);
                var cache = dbInfo.GetOrCreateClassInfoCache(typeof(ClassSpeedMeasurement));
                var dbPropertyInfoCache = cache.Propertys["PropString"];

                ClassSpeedMeasurement instance = cache.DefaultFactory();
                dbPropertyInfoCache.Setter.Invoke(instance, "Value");
                var invoke = dbPropertyInfoCache.Getter.Invoke(instance);
            });

            Console.WriteLine("Time: {0}", timeSpan);

            var followUp = Measure(() => OverallSpeedEvalPropertyGetAndSet(dbInfo));

            Console.WriteLine("Folowup Time: {0}", followUp);
        }