public static void MeasureMagic() { Console.WriteLine("Lambda(Magic)"); var bidData = new BidData("IBM", 0L, 0.50); var bidDataObject = (Object)bidData; var propInfo = typeof(BidData).GetProperty("BidPrice"); var methodInfo = propInfo.GetGetMethod(); var lambda = MagicType.GetLambdaAccessor(methodInfo); for (int nn = 0; nn < 10; nn++) { var timeItem = PerformanceObserver.TimeMicro( delegate { for (int ii = 1000000; ii >= 0; ii--) { lambda.Invoke(bidDataObject); } }); Console.WriteLine("Lambda(Magic): {0,8} {1,8:N3} {2,8:N3}", timeItem, timeItem / 1000000.0m, 1000000.0m / timeItem); } }
public static void MeasureNativeLambda() { Console.WriteLine("Lambda(Native)"); var bidData = new BidData("IBM", 0L, 0.50); var bidDataObject = (Object)bidData; Expression <Func <object, object> > lambdaExpression = arg => (object)((BidData)arg).BidPrice; Func <object, object> lambda = lambdaExpression.Compile(); for (int nn = 0; nn < 10; nn++) { var timeItem = PerformanceObserver.TimeMicro( delegate { for (int ii = 1000000; ii >= 0; ii--) { lambda.Invoke(bidDataObject); } }); Console.WriteLine("Lambda(Native): {0,8} {1,8:N3} {2,8:N3}", timeItem, timeItem / 1000000.0m, 1000000.0m / timeItem); } }
public void SendBidEvent() { var bidEvent = new BidData( SymbolList[Rand.Next(SymbolList.Length)], 0L, Rand.NextDouble()); _espRuntime.SendEvent(bidEvent); }
private static void PerformanceTestIdentNode() { var bidData = new BidData("IBM", 0L, 0.50); var identNode1 = new ExprIdentNodeImpl("BidPrice"); var bidDataEventType = _espServiceProvider.EventAdapterService.GetEventTypeByName("BidData"); var streamTypeService = new StreamTypeServiceImpl(bidDataEventType, null, false, null); identNode1.Validate( new ExprValidationContext( _container, streamTypeService, null, null, null, null, null, null, null, null, null, -1, null, null, null, false, false, false, false, null, false )); var exprEvaluatorContext = (ExprEvaluatorContext)null; Console.WriteLine("IdentNode"); for (var nn = 0; nn < 10; nn++) { var eventBean = new BeanEventBean(bidData, bidDataEventType); var eventBeans = new EventBean[] { eventBean }; var timeItem = PerformanceObserver.TimeMicro( delegate { for (var ii = 1000000; ii >= 0; ii--) { identNode1.ExprEvaluator.Evaluate( new EvaluateParams(eventBeans, false, exprEvaluatorContext)); } }); Console.WriteLine("time: {0} {1:N3} {2:N3}", timeItem, timeItem / 1000000.0m, 1000000.0m / timeItem); } }
public static void MeasureNative() { Console.WriteLine("Native"); var bidData = new BidData("IBM", 0L, 0.50); var bidDataObject = (Object)bidData; for (int nn = 0; nn < 10; nn++) { var timeItem = PerformanceObserver.TimeMicro( delegate { for (int ii = 1000000; ii >= 0; ii--) { var bidPrice1 = (object)(((BidData)bidDataObject).BidPrice); } }); Console.WriteLine("Native: {0,8} {1,8:N3} {2,8:N3}", timeItem, timeItem / 1000000.0m, 1000000.0m / timeItem); } }