Compilación con el JIT

11/12/2006 - 20:18 por Javito | Informe spam
He visto las herramientas que incluye Visual Studio 2003 para instalar las
aplicaciones de C# terminadas, y veo con sorpresa que lo único que hace es
comprimir en un archivo MSI los archivos que le indiques y luego te los
desempaqueta tal cual donde le digas, pero no veo que en ningún momento se
compile con JIT, y mis didas son:

1) hay forma de correr una aplicación NET en un equipo queno tenga
instalado Net Framework, la teoría dice que si compilandolo con el JIT pero
como y cuando.

2) cual es el procedimiento a seguir para compilar con JIT y donde está
el citado compilador en un equipo Windows con Visual Studio 2003

un saludo

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
11/12/2006 - 20:34 | Informe spam
"Javito" wrote in message
news:
He visto las herramientas que incluye Visual Studio 2003 para instalar las
aplicaciones de C# terminadas, y veo con sorpresa que lo único que hace es
comprimir en un archivo MSI los archivos que le indiques y luego te los
desempaqueta tal cual donde le digas, pero no veo que en ningún momento se
compile con JIT, y mis didas son:

1) hay forma de correr una aplicación NET en un equipo queno tenga
instalado Net Framework, la teoría dice que si compilandolo con el JIT
pero como y cuando.

2) cual es el procedimiento a seguir para compilar con JIT y donde está
el citado compilador en un equipo Windows con Visual Studio 2003



Lo que quieres es lo contrario de lo que dices, es decir NO usar el JIT.
El JIT (Just-In-Time compiler) se usa siempre de forma predeterminada cuando
ejecutas un archivo que tiene dentro código MSIL (el que resulta al compilar
en .Net), y lo que hace es compilar sobre la marcha el MSIL para dar código
ejecutable optimizado para la máquina en la que se esté ejecutando el
programa.

Si quieres dejar en disco el ejecutable completamente compilado a código
nativo, para que no se tenga que ejecutar el JIT, entonces tienes que usar
el NGEN.EXE (Native image GENerator), que viene con el framework. Si
escribes NGEN en el Indice del manual en linea te sale la forma de llamarlo.
Respuesta Responder a este mensaje
#2 Javito
11/12/2006 - 21:30 | Informe spam
Pero entonces las duda son las siguientes:

1) Si yo cojo el fichero Exe generado por Visual Studio y lo traslado a un
ordenador con el mismo sistema operativo y el mismo procesador , pero sin
Net Framework ¿ funcionaría ?

2) Si el fichero exe el el compilado y ya no está en MSIL, entoces con la
herramienta ILDASM ¿ lo que estoy haciendo es descompilarla ?

un saludo

"Alberto Poblacion"
escribió en el mensaje news:
"Javito" wrote in message
news:
He visto las herramientas que incluye Visual Studio 2003 para instalar
las aplicaciones de C# terminadas, y veo con sorpresa que lo único que
hace es comprimir en un archivo MSI los archivos que le indiques y luego
te los desempaqueta tal cual donde le digas, pero no veo que en ningún
momento se compile con JIT, y mis didas son:

1) hay forma de correr una aplicación NET en un equipo queno tenga
instalado Net Framework, la teoría dice que si compilandolo con el JIT
pero como y cuando.

2) cual es el procedimiento a seguir para compilar con JIT y donde
está el citado compilador en un equipo Windows con Visual Studio 2003



Lo que quieres es lo contrario de lo que dices, es decir NO usar el
JIT. El JIT (Just-In-Time compiler) se usa siempre de forma predeterminada
cuando ejecutas un archivo que tiene dentro código MSIL (el que resulta al
compilar en .Net), y lo que hace es compilar sobre la marcha el MSIL para
dar código ejecutable optimizado para la máquina en la que se esté
ejecutando el programa.

Si quieres dejar en disco el ejecutable completamente compilado a
código nativo, para que no se tenga que ejecutar el JIT, entonces tienes
que usar el NGEN.EXE (Native image GENerator), que viene con el framework.
Si escribes NGEN en el Indice del manual en linea te sale la forma de
llamarlo.


Respuesta Responder a este mensaje
#3 Alberto Poblacion
12/12/2006 - 07:29 | Informe spam
"Javito" wrote in message
news:
1) Si yo cojo el fichero Exe generado por Visual Studio y lo traslado a
un ordenador con el mismo sistema operativo y el mismo procesador , pero
sin Net Framework ¿ funcionaría ?



No, el framewrok siempre se necesita aunque el ejecutable esté compilado
a código nativo, porque tiene todas las DLLs a las que llama el programa
mientras está funcionando.

2) Si el fichero exe el el compilado y ya no está en MSIL, entoces con la
herramienta ILDASM ¿ lo que estoy haciendo es descompilarla ?



No lo he probado, pero creo que si ruedas el ILDASM sobre un fichero al
que se le ha hecho el NGEN, solo te enseña los metadatos pero no te
desensambla nada.
Respuesta Responder a este mensaje
#4 Javito
12/12/2006 - 18:00 | Informe spam
Gracias Alberto, pero todavía persiste una duda, esto que cuentas entiendo
que está bien en entornos Windows, pero una de las cosas que Microsoft
anuncia con su Net Framework es la portabilidad de todos sus programas hacia
otros entornos que posean un compilador JIT y eso parece que contradice la
necesidad de tener .Net Framework instalado en la máquina donde se ejecuta
el programa, o puedo instalar Net Framework en una máquina UNIX o Solaris
etc.

un saludo
"Alberto Poblacion"
escribió en el mensaje news:%
"Javito" wrote in message
news:
1) Si yo cojo el fichero Exe generado por Visual Studio y lo traslado a
un ordenador con el mismo sistema operativo y el mismo procesador , pero
sin Net Framework ¿ funcionaría ?



No, el framewrok siempre se necesita aunque el ejecutable esté compilado
a código nativo, porque tiene todas las DLLs a las que llama el programa
mientras está funcionando.

2) Si el fichero exe el el compilado y ya no está en MSIL, entoces con la
herramienta ILDASM ¿ lo que estoy haciendo es descompilarla ?



No lo he probado, pero creo que si ruedas el ILDASM sobre un fichero
al que se le ha hecho el NGEN, solo te enseña los metadatos pero no te
desensambla nada.



Respuesta Responder a este mensaje
#5 Alfredo Novoa
12/12/2006 - 19:01 | Informe spam
On Tue, 12 Dec 2006 18:00:08 +0100, "Javito"
wrote:

Gracias Alberto, pero todavía persiste una duda, esto que cuentas entiendo
que está bien en entornos Windows, pero una de las cosas que Microsoft
anuncia con su Net Framework es la portabilidad de todos sus programas hacia
otros entornos que posean un compilador JIT y eso parece que contradice la
necesidad de tener .Net Framework instalado en la máquina donde se ejecuta
el programa,



No, lo que anuncian es portabilidad hacia otros entornos que posean
una implementación del .Net Framework, y de momento tienes el Compact
Framework para Windows CE y Windows Mobile, y Rotor para varias
plataformas.

o puedo instalar Net Framework en una máquina UNIX o Solaris
etc.



No, pero puedes instalar Rotor o Mono, aunque no son totalmente
compatibles.

Saludos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida