Tema: IBX vs IBO
Ver Mensaje Individual
  #3  
Antiguo 12-08-2003
Avatar de Voutarks
Voutarks Voutarks is offline
Miembro
 
Registrado: jul 2003
Ubicación: Islas Canarias
Posts: 118
Reputación: 23
Voutarks Va por buen camino
Hola Rudi, ya hablé contigo una vez, creo, preguntándote sobre el mesaje que aparece al arrancar un programa cliente.

La verdad es que no he tenido mucho tiempo para utilizar mejor estos componentes pero ¿de verdad crees que son más rápidos que los IBX?. Lo que a mi me parece es que son más lentos, precio lógico que pagan por ofrecer muchas más funciones.

Lo que he hecho hasta ahora es hacer un par de pruebas de velocidad, haciendo inserción, modificación y borrado de 100.000 registros en bloque y cronometrando el tiempo. Con los IbObjects he probado con los Tdataset y con varios de los nativos (TIB_Query, TIB_DSQL, etc), además de jugar con algunos parámetros de estos componentes para ver si mejoraban el rendimiento. El resultado era siempre goleada de los IBX: 3 veces más rápido que los IbObjects nativos y 4 veces más que los compatibles Tdataset.

Hay otra prueba de velocidad que alguien realizó recientemente y cuyo resultado publicó en el newsgroup de los IbObjects. Se trataba de modificar en bloque 50.000 registros y además de recorrer todo ese conjunto de datos con IBX y un TDBGrid de toda la vida contra IbObjects nativo con su TIB_Grid. ¿Los resultados?... idénticos. Los IBX eran entre el 300 y el 400 % más rápidos. Al mensaje contestaron miembros ilustres de la comunidad IbObjects/Firebird como Helen Borrie o Lucas Franzen, diciendo primero que habría que ajustar ciertos parámetros de los IbObjects, ¡pero no dijeron cuales! y al final terminaron contestando que no se iban a molestar en esa prueba, ya que nadie en sano juicio pondría en un programa final serio un grid para recorrer 50.000 registros, así que sólo era una prueba simbólica; con lo cual llego yo a la conclusión de que efectivamente son más lentos los IbObjects que IBX.

Bien, como dije antes veo esto totalmente lógico, ya que los IBX son bastante simples y se limitan bastante a funciones básicas directamente soportadas por la API de Interbase. Según el creador de los IBObjects, Jason Wharton, esto deja las complicaciones del lado del programador, ya que los IbObjects hacen que se ahorre mucho trabajo.

Bien, aquí es donde yo pregunto ¿vale la pena aprender los IbObjects? Resulta que son un conjunto de componentes bastante amplio y con una cantidad de propiedades y métodos algo abrumadora. Aparte tampoco encuentro completa la documentación de los Ibobjects, ya que no definen bien la mayoría de estas propiedades. Por otro lado si quiero enlazar con otros componentes como los ReportBuilder o los de la casa Devexpress no puedo utilizar los IBO nativos, tengo que utilizar los compatibles Tdataset, y vuelvo a preguntarme ¿compensa lo que gano al utilizar estos componentes?

Algo concreto: dicen que los IbObjects manejan mucho mejor las transacciones ¿en que sentido? ¿que hacen exactamente? Con IBX estoy siempre controlando el comienzo y el fin de las mismas, y es un poco pesado. No me fío de dejar que el usuario tenga un grid en la pantalla horas y horas sin modificar nada, simplemente navegando por él y esté esa transanción ahí, abierta. Tampoco me gusta utilizar CommitRetaining. Así que casi siempre los grids estarán en blanco hasta que el usuario busque algo y resulta que no se por qué oscuro motivo a la mayoría de los usuarios no les gustan los grids de datos sin datos ya que prefieren su pantalla siempre inundada de filas aunque no las necesiten. ¿Como me pueden ayudar en este sentido los IbObjects?

Ya lo sé he hecho muchas preguntas, pero son las dudas que tengo actualmente.
Responder Con Cita