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); }
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); })); }
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); }