![]() |
Mejor Windows o Linux
Este post es como continuacion del: www.clubdelphi.com/foros/showthread.php?t=13208
Tal y como comenté en otro post donde mencionaba los tiempos obtenidos en dar una serie de altas a una base de datos de FB 1.5 desde Delphi con diversos Componentes de acceso a este, he realizado otra prueba para poder determinar el empleo del servidor de dicho FB bien sobre plataforma WINDOWS o bien sobre LINUX. Los implicados han sido: Windows 2000 Profesional SP4, todo similar al post anteriormente citado.La Base de Datos será exactamente la misma que en el otro post, a la cual le añadiré otro Store Procedure definido de la siguiente manera: Con ello lo que pretendo es que lanzando el Procedimiento, desde una aplicación Win32 realizada en Delphi, se produzca a nivel servidor de FireBird una inserción másiva (500.000) de filas a la manera similar del post citado (la verdad es que lo cito mucho, eehhh?); El código para ello es el siguiente: Como se observa para ello he empleado los componentes IBX, y durante el mismo no efectúo ningún Commit a no ser al final del mismo. La aplicación sobre el FB en WIN2K se realiza una vez reiniciado el equipo. La misma aplicación compilada en WIN, se copia a Linux, de tal manera: En Linux Mandrake 10 con kernel 2.6, instale el FB 1.5 Classic, (NO el Super Server); así mismo obtuve una copia de demostración de VMware Workstation 4.5 (www.vmware.com), la que me valió de prueba. Una vez instalado el VMWare instale una copia de WINXP SP1 como sistema invitado, y sobre este instale únicamente un cliente de FB y la aplicación en Delphi comentada antes. Lo que he pretendido es ver el tiempo de ejecución del Store Procedure ejecutándose sobre una plataforma íntegramente Win2K y otra híbrida, es decir, servidor FB en Linux y Cliente en una máquina virtual de WinXP sobre dicho Linux; la aplicación claro está, es exactamente la misma. Cabe citar que en Linux están corriendo bastantes demonios como Samba, NFS y un montón que ahora no recuerdo; así mismo el XP accede a Linux mediante NAT, con lo cual tanto servidor como cliente (invitado) gozan de diferentes IP,s internas, lo cual en cierta manera, es una pequeñita red dentro de la misma máquina; es por complicarlo un poco más. Una vez lanzada la aplicación 3 veces en cada plataforma y sacada la media, estas arrojan los siguientes tiempos medidos en segundos: Cita:
No he podido realizar comparativas entre Delphi y el Kylix correspondiente, dado que no dispongo de Kylix, mala suerte; no obstante sigo pensando que la cosa no tiene color. Espero que tanto este post como el anterior, os pueda servir de ayuda y guía, si es que aún no estaba muy clara la cosa. Y sobre todo, perdonar todo este rollo. |
Tengo alguna sugerencia sobre la comparativa.
En primer lugar, si no entiendo mal, haces una prueba con windows 2000 directamente y otra con linux mandrake 10 poniendo un windows xp en un vmware. El vmware como tu dices te crea conexiones de red virtuales median NAT y esas historias seguro que haran que la cosa vaya algo más lenta. Por otra parte está lo del los modos síncrono o asíncrono. No es para tomarselo a la ligera, yo hice mis pruebas, sobre un servidor windows 2003, accediendo en red desde un cliente windows xp: haciendo un monton de miles de inserciones y haciendo commit cada unas cuantas, con modo síncrono tardaba como 4 minutos y con asíncrono como 30 segundos, una diferencia bastante importante. Hay que tenerlo muy en cuenta porque si no se modifica esto en cada base de datos, firebird 1.5 las crea por defecto en modo asíncrono en linux y en síncrono en windows. Yo propongo tres tipos de pruebas:
|
Cita:
he repetido la prueba, solo en WIN2K, claro, y el tiempo ha variado es: 84 segundos lo corrigo en el post inicial. ahora que tengo tiempo, voy a currar en lo que me comentas del store procedure unicamnete, para poder tirarlo directamnrete desde consola muchas gracias por tu aclaracion y sacarmne de este GRANDISIMO error y despiste. lo del 2003, imposible para mi. |
en base a los anteriores, continuo:
he vuelto a crear la misma BD con exactamente el mismo propósito, pero, he sustituido el StroreProcedure 'INICIO', por otro denominado 'DAMETIEMPOS' con lo cual queda de la siguiente manera:
se hace notar que pa meterle más cañita será un alta masiva de 5.000.000 filas, tal y como se refleja en el Store Procedure tal y como comenta Rufus: Cita:
tanto en async con sync los tiempos obtenidos han sido: WIN2K Pro --- En Async = 937 y En Sync = 1.085 Mandrake 10 (kernel 2.6) --- En Async = 461 y en Sync = 523 Nota: a su vez lo he lanzado también desde la WmWare comentada, y en Async el timpo ha sido de 626. Rufus comentó: Cita:
|
De nuevo felicidades Julio.
NOTA: Pensaba que Firebird 1.5 ya venía por defecto en modo asíncrono incluso en Windows. Saludos. |
La franja horaria es GMT +2. Ahora son las 00:39:15. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi