Escribo un juego XNA donde realizo verificaciones de colisión por píxel. El bucle que comprueba esto lo hace desplazando un ORing interno y bit a bit y, por lo general, es difícil de leer y entender.¿Puedo verificar si el compilador de C# indicó una llamada a un método?
Me gustaría agregar métodos privados como private bool IsTransparent(int pixelColorValue)
para hacer que el ciclo sea más legible, pero no quiero la sobrecarga de las llamadas a métodos ya que este es un código muy sensible al rendimiento.
¿Hay alguna manera de forzar al compilador a alinear esta llamada o lo haré solo espero que el compilador haga esta optimización?
Si no hay una manera de forzar esto, ¿hay alguna manera de verificar si el método estaba en línea, salvo por la lectura del desmontaje? ¿Aparecerá el método reflejado si estaba en línea y no existen otras personas que llaman?
Edit: No puedo forzarlo, ¿así que puedo detectarlo?
Puede (en .Net 4.5). usando: '[MethodImpl (MethodImplOptions.AggressiveInlining)] ' – Mahmoodvcs