Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: zupervaca en 30 de Julio de 2005, 08:06:30 PM

Título: C-sharp Y Lo Inline
Publicado por: zupervaca en 30 de Julio de 2005, 08:06:30 PM
 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
Título: C-sharp Y Lo Inline
Publicado por: Vicente en 30 de Julio de 2005, 08:15:24 PM
 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
Título: C-sharp Y Lo Inline
Publicado por: zupervaca en 30 de Julio de 2005, 08:31:24 PM
 ctrl+f5  ;)

teoricamente deberia existir, pero despues de probar un monton de veces no hay duda, no le han puesto inline tovia  (grrr)  
Título: C-sharp Y Lo Inline
Publicado por: Vicente en 30 de Julio de 2005, 10:22:36 PM
 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
Título: C-sharp Y Lo Inline
Publicado por: _Grey en 30 de Julio de 2005, 10:35:54 PM
 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.
Título: C-sharp Y Lo Inline
Publicado por: Vicente en 30 de Julio de 2005, 10:40:08 PM
 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
Título: C-sharp Y Lo Inline
Publicado por: zupervaca en 30 de Julio de 2005, 11:43:10 PM
 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
Título: C-sharp Y Lo Inline
Publicado por: Vicente en 31 de Julio de 2005, 02:13:37 AM
 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.aspx

Espero que te sirva. Un saludo!

Vicente
Título: C-sharp Y Lo Inline
Publicado por: zupervaca en 31 de Julio de 2005, 11:40:26 AM
 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
Título: C-sharp Y Lo Inline
Publicado por: Grugnorr en 31 de Julio de 2005, 05:14:48 PM
 .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