Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





C-sharp Y Lo Inline

Iniciado por zupervaca, 30 de Julio de 2005, 08:06:30 PM

« anterior - próximo »

zupervaca

 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

Vicente

 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

zupervaca

 ctrl+f5  ;)

teoricamente deberia existir, pero despues de probar un monton de veces no hay duda, no le han puesto inline tovia  (grrr)  

Vicente

 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

_Grey

 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.

Vicente

 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

zupervaca

 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

Vicente

 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

zupervaca

 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

Grugnorr

 .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

hat the hells!






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.