bueno he podido comprobar que no existen funciones inline en c-sharp actualmente :(, osea que este codigo
for (int i = 0; i < 10000; i++)
{
i++;
}
sera siempre mas rapido que este otro for (int i = 0; i < 10000; i++)
{
incrementari();
}
siempre que se llame a una funcion, propiedad, etc ira mas lento, por lo menos ahora mismo, vaya chasco <_<
¿alguien sabe si se puede obligar a que sea inline? yo he estado buscando por todas partes y no he encontrado na de na
saludos
Hola,
ya se que es una tontería, pero has compilado en debug o release? Creía que en release si había inline... Un saludo!
Vicente
ctrl+f5 ;)
teoricamente deberia existir, pero despues de probar un monton de veces no hay duda, no le han puesto inline tovia (grrr)
Hola,
yo no he mirado, pero me sigue pareciendo raro... Mira este artículo sobre generics y operaciones aritméticas:
http://www.lambda-computing.com/publicatio...cles/generics2/Fijate que dice al final donde Performance:
CitarPlease make sure that you run the performance test in release mode, since some very important optimizations such as method inlining are disabled in debug mode.
No se, lo mismo Ctrl + f5 y compilar en modo release no es lo mismo? O vamos, ni idea, pero según este tio si que hay inlining... Un saludo!
Vicente
Por lo menos en mi VC++60 con ctrl+f5 se compila y ejecuta, pero no cambia a modo Release si lo tengo en Debug.
Para ello: Build->Set Active Configuration, en 2005beta creo que era algo diferente, pero has de cambiar la configuracion activa, no se logra solo con ctrl+f5, si es lo que quieres decir....
Saludos.
Hola,
eso creía yo también, pero no lo he probado. En 2005 puedes cambiar la configuracion en Build -> Configuration Manager. Un saludo!
Vicente
tambien lo probe cuando me lo dijiste por si acaso desde el directorio release y pasa lo mismo, no obstante lo he probado en el portatil cutre que tengo y ahi si que me lo hace bien, esto cada vez es mas raro :huh:
¿alguien sabe como decide el jilt si es o no inline?
saludos
Hola,
buscando por el google te sale mucha info, tienes este link (el primero que me ha salido).
http://blogs.msdn.com/ericgu/archive/2004/...1/29/64717.aspxEspero que te sirva. Un saludo!
Vicente
gracias es el primer sitio que indican cuando se pone o no inline, no obstante no entiendo por que el mismo codigo en dos ordenadores se compila diferente, no obstante en uno me baje el redistribuible y en otro el que viene con el compilador y puede ser algo de eso (diferentes versiones), pero bueno, tampoco estoy seguro, lo que esta claro es que con un simple casting que se haga la funcion inline se va al carajo ya que superaria los 32 bytes (grrr)
saludos
.NET es Jitted, el código intermedio generado invocará el la función pero el código nativo Jitted hará optimizaciones como esa, tranquilo, y otras "dinámicas" ajustándose al uso, procesador del usuario, etc etc etc