GeneXus en una maquina virtual (Virtual PC 2007)



Desde hace tiempo, tenia ganas de hacer esta prueba de medir la performance y no habia tenido el tiempo de hacerla.

Ahora estoy buscando una solución "aspirina" para el problema que se nos presenta a menudo de tener que mantener varias versiones de GeneXus en diferentes KB.
Es común tener que probar un Upgrade (o preview) en Prototipo y tener producción en un Upgrade anterior.

Es bastante engorroso hacer esto con GeneXus 9.0, pues es muy fácil cometer errores y abrir una KB con la version equivocada de GeneXus y muchas veces los desarrolladores se dan cuenta, cuando al generar algo se copian nuevamente los programas standard.

Para hacer mas fácil este manejo pensé en poner maquinas virtuales con diferentes instalaciones de GeneXus y especificar y generar desde ahi. Tenía la duda de como iba a ser la performance de generar y especificar en la maquina virtual en vez de hacerlo directamente en el PC.
En el blog de Rodrigo Alvarez habia puesto un comentario sobre este tema, pero aun no ha tenido respuesta.

Decidi entonces hacer una pequeña medición de tiempos para sacarme la duda y los resultados me asombraron.

Primero instale una versión de Virtual PC 2007 en mi notebook (Core 2 Duo, 2Gb de RAM, Windows Vista).

Tomé para hacer pruebas la KB de GXWiki + WikiAPI, que son unos 190 objetos. No es muy grande y tiene varios SDT y webservices por lo que creo que sirve bien para medir tiempos.

La prueba consistió en especificar y generar forzado todos los objetos de la misma, 3 veces en cada lado y sacar un promedio. En el PC estaba corriendo las cosas habituales de trabajo (Firefox, escuchando musica, etc).

Primero probé conectar el disco del notebook a la maquina virtual a traves de la funcionalidad de carpetas compartidas pero vi que esa funcionalidad agregaba mucho overhead a la lectura del disco, por lo que la descarté.

Entonces, copie la KB al disco de la maquina virtual, para hacer mas justa la prueba.

Los tiempos fueron:




Como conclusiones:
1) La opción de usar carpetas compartidas esta descartada, por lenta.
2) Se ve claramente que el factor que mas influye es el acceso a la KB a traves de la red.
3) La opción de ejecutar con la KB local en la maquina virtual, es mas rapida que la ejecución nativa en el Notebook!.

También hay que ver la usabilidad del Virtual PC, y como interactua con las demas aplicaciones del PC. En principio no he encontrado grandes problemas, pero se necesita mas tiempo para hacer una evaluación un poco mas seria.

Voy a seguir investigando un poco mas, pues puede ser una buena alternativa de desarrollo.

Comentarios

  1. Es llamativo que funcione mas rapido en una maquina virtual que en la maquina real.

    La maquina virtual ejecuta en el mismo equipo en el que hiciste la prueba?

    ResponderBorrar
  2. gxTurrix:
    Si, es llamativo.

    Y ejecuto todo en mi notebook.

    La ejecucion "nativa", era con Windows Vista, con la KB en el disco local.

    La ejecucion virtual, fue en una maquina virtual, ejecutando en el mismo notebook, con la KB en el disco virtual, con el disco de unddo habilitado y con 512 Mb de memoria unicamente, pero con windows 2000.

    Seguramente la diferencia debe deberse a algun tema de cache de disco virtual. Es solo una suposicion.

    El resultado es bien llamativo..

    Esto podria significar, que puede ser mas rapido, tener diferentes maquinas virtuales ejecutando diferentes versiones de GX y elegir la que quiero para cada caso.

    Esta bueno para poder tener por ejemplo una maquina virtual con todo lo que se necesita para ejecutar java (tomcat/jre/gxmake/jikes/ldap,etc)
    y otra con todo lo necesario para .NET (Framework, IIS, etc)

    Voy a seguir probando.

    ResponderBorrar
  3. buenas noches, estoy bastante complicado por que no puedo ejecutar una aplicacion muy sencilla en genexus 9.0 (U3) con windows vista, estoy generando .NET, esto es web, no se que otra cosa mas les podria decir, para orientarlos.
    de ante mano muchas gracias
    Tomas Araya P.
    Santiago, Chile.

    ResponderBorrar
  4. Tomas Araya:
    No comentas cual es el error que te esta dando.
    Yo trabajo con una configuracion parecida a la tuya y no he tenido problemas.
    Si comentas cual es el error, a lo mejor te puedo ayudarte.

    Enrique

    ResponderBorrar
  5. Buenas noches muchas gracias por contestar, me aparece el siguiente error

    Este error puede deberse a una serie de problemas, como los siguientes:

    "Se perdió la conectividad a Internet.
    El sitio web no está disponible temporalmente.
    No se puede tener acceso al Servidor de nombres de dominio (DNS).
    El Servidor de nombres de dominio (DNS) no tiene una entrada en la lista para el dominio del sitio web.
    Si ésta es una dirección HTTPS (segura), haga clic en Herramientas, Opciones de Internet, Opciones Avanzadas, y compruebe que los protocolos SSL y TLS están habilitados en la sección de seguridad.

    Para usuarios sin conexión

    Todavía puede ver fuentes a las que está suscrito y algunas páginas web recientes.
    Para ver fuentes a las que está suscrito

    Haga clic en el botón Centro de favoritos , después haga clic en Fuentes y finalmente haga clic en la fuente que desea ver.

    Para ver páginas web visitadas recientemente (esto puede no funcionar para todas las páginas)

    Haga clic en Herramientas y después haga clic en Trabajar sin conexión.
    Haga clic en el botón Centro de favoritos , haga clic en Historial y después haga clic en la página que desea ver."

    Pero mi problema yo creo pasa por como configurar el IIS de windows vista HOME Premiun..

    muchas gracias
    saludos cordiales
    Tomas Araya P.

    ResponderBorrar

Publicar un comentario

1) Lee el post
2) Poné tu opinión sobre el mismo.
Todos los comentarios serán leidos y la mayoría son publicados.

Entradas más populares de este blog

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Aplicación monolítica o distribuida?

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.