Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Dev Express baja el rendimiento (https://www.clubdelphi.com/foros/showthread.php?t=74362)

RebeccaGL 15-06-2011 00:54:04

Dev Express baja el rendimiento
 
He probado los componentes Dev Express son muy vistosos y muy buenos sobre todo su cxQuantumGrid es muy buena pero disminuyen el rendimiento.

Por ejemplo tengo un sistema de 15 tablas arrrancaba bien rapido, luego decidi usar las grillas de devexpress cambie todas pero resulta que al abrir los archivos y cerrarlos demora mucho antes con los componentes de delphi demoraba de 1 a 2 segundos con los componentes dev express demora como 10 segundos a mas porque??. Estoy usando Delphi y MySQL 5.5, existe alguna forma de acelerar el rendimiento con los componentes dev express.

mamcx 15-06-2011 02:02:19

Claro que si. Por defecto, creo que los componentes cargan todo a memoria para que las ediciones y filtros hechos sobre el grid se hagan mas rapido.

Debes consultar la documentacion sobre el tema.

maeyanes 15-06-2011 02:06:31

Hola...

Así es, tal y como dice mamcx, este componente carga todos los datos en memoria de forma predeterminada, esto para poder usar sus características avanzadas, y si tus tablas tienen muchos datos, esto hará que el rendimiento baje un poco.

Sigue el consejo que te da mamcx y busca en la ayuda.



Saludos...

Neftali [Germán.Estévez] 15-06-2011 12:48:02

Confirmo lo dicho.
Los Grids de la Quantum tienen 2 modos de funcionamiento. Cada uno de ellos dependiendo del momento y de cómo lo uses es adecuado o no.

Lo primero que debes hacer es modificar las propiedades del Grid para que funcione como los estandard de Delphi y entonces comparar.

Desde el TableView/DataController/DataModeController/GridMode.

Si miras la ayuda sobre esa propiedad verás que pone:

//··································································································
Grid mode is automatically switched off when grouping is applied to a grid view. In this case (and also if the GridMode property value is False), the data controller switches to Load All Records mode.
//··································································································

oesqueda 15-06-2011 17:54:51

Cabe aclarar, porque yo los acabo d comprar (bueno actualizar) para el delphi xe y si activas el modo grid como digo nefatli.

No funciona el autosort, autofilter y otras monadas que tiene automaicas.

Si no estas en modo Grid carga toda la base de datos al Grid y de ahi ya no usa mas el dataset hasta que no hagas un requery o algo por el estilo.

Saludos

gatosoft 15-06-2011 18:30:16

Adema´s de unirme a los comentarios d elos compañeros...a mi me queda sonando tu expresión: "tengo un sistema de 15 tablas arrrancaba bien rapido"... no se como tengas diseñado tu sistema, pero utilizas componentes TTable (de cualquier proveedor), ¿abres todas )o varias) las tablas al inciar tu sistema?...

Lo anterior lo digo, por que si tus respuestas son afirmativas, tendrías que replantear tu estrategia de apertura de tablas, pues en cualquier entorno y con cualquier componente, el tamaña de tus tablas será un problema tarde o temprano...

Conozco un sistema que abre sus tablas para hacer busquedas "on-line" con FindKey y otras de estas funciones, pero esto deja de ser práctico cuando las tablas son muy grandes... Lo que suede es que con los recursos de hoy dia en ocasiones no lo notamos...

Un saludo,

oesqueda 15-06-2011 18:38:35

Completamente de acuerdo.
Debes de abrir a medida que usas, y de preferencia abrir con consultas para bajar el total d registros a usar.
Claro depende que base de datos usas, pero abrir todas las tablas al principio, como crear todas las formas al principio es un suicidio a la larta.

RebeccaGL 15-06-2011 22:41:06

Gracias por responder

Estoy usando componentes Zeos 6.6.6 y mis tablas estan enlazadas a Query's y solo cargo los registros necesarios para cada query y no cargo toda la tabla fisica en si, se que con millones de registros se pondria lento el sistema.

Hare la prueba como dijo Neftaly haber que resulta si vuelve el rendimiento vere si me quedo con esos componentes, que son muy buenos, yo uso los componentes standard de Delphi y algunos hechos por mi, pero estos de Dev Express son muy buenos sobre todo su QuantunGrid que es muy flexible para bases de datos.

RebeccaGL 16-06-2011 00:58:55

Neftaly eres un crack gracias ya probe lo que decias y el rendimiento subio de gran manera ahora estan rapidas las DBgrid's de devexpress solo unas milesimas de segundo menos rapidas que los componentes standard de dephi, habra alguna propiedad mas que desactivar, para aumentar mas rendimiento?, bueno de todas maneras gracias por la ayuda.

Neftali [Germán.Estévez] 16-06-2011 11:37:51

Ten en cuenta lo que ete han dicho otros compañeros sobre no abrir todas las tablas al arrancar la aplicación, sino hacerlo de forma progresiva cuando las vayas necesitando.
Es importante y es un gran consejo.

oesqueda 16-06-2011 16:11:27

Si si hay mas, esta la propiedad KeyFieldNames dentro de DataController que debe usar la llave principal de la tabla, con esto ayuda mas a acelerar, sobre todo si permites usar las propiedades de edicion del grid (Insertar, Editar y Borrar).

Y la que esta dentro de DataModeController SmartRefresh tambien en True

RebeccaGL 18-06-2011 00:39:22

Gracias a todos por responder.

He cambiado las grillas standard y las de scalabium por las quantumgrid salio todo bien, he visto que varios eventos han cambiado en las quantumgrid pero los reemplaze por esos nuevos eventos que tienen otros nombres, solo hay un evento que no he podido encontrar es el OnColExit.


Saludos


La franja horaria es GMT +2. Ahora son las 14:35:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi