![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Reempplazo para el lento TClientDataSet
Quisiera saber que me recomiendan ustedes para reemplazar al lento TClientDataSet y que sea libre/gratis
He visto el KmMemtable pero me parece que no es gratis porque en su sitio no dice nada. Me pueden dejar varias alternativas y evaluare cual me conviene o me gusta mas para trabajar. Saludos, El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno |
#2
|
||||
|
||||
kbmemtable es (o al menos, era) libre.
De todas formas, no entiendo eso de que el tclientdataset es lento, siempre ha sido rápido.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
Casimiro, si te fijas en Internet en muchas páginas todos se quejan de que el TClientDataSet es lento. Igualmente para descartar te recomiendo que hagas una prueba como he hecho yo.
Yo la prueba la realice comparando el TClientDataSet con el que trae las Jedi y el de las RxLib. Los resultados que me direnon en su momento fue que estos dos ultimos componentes eran mucho mas rápido que el propio de Delphi. De ahí que me decidí a buscar una alternativa para este. Si haces la prueba con muy pocos registros no se nota diferencia, pero la cosa cambia cuando tenes que trabajar con muchisimos registros como es mi caso. Saludos, El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno |
#4
|
||||
|
||||
Cita:
![]() De todas formas, el tkbmemtable y el de las jedi y las rx son "tablas en memoria" que supongo que trabajan distinto. Yo siempre he usado el tkbmemtable y el de las rx, cuando he necesitado tener tablas en memoria. Son muy, muy rápidos.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
|||
|
|||
No quiero entrar en la polemica de si es o no es bueno algo. Solo te digo para que lo pienses que hasta Linux puede ser malo segun quien lo mire.
Bueno el tema es ese, además de rápido estoy evaluando que me ofrece de distinto o de nuevo cada uno de esos componentes. Hasta ahora no se con cual quedarme es por eso que consulte. Ya que me dices que has usado el de las RxLib (y parece que te funciono bien y es rápida) y como las tengo instaladas me parece que me inclinaré a usar este asi no tengo que instalar mas cosas. Con las Jedi en mi caso las uso en las empresa donde ya las tienen instaladas, pero en mi máquina son medio reacio a instalarlas debido a que se instalan muchas cosas que no necesito y algunas no se las pued eliminar para no instalar (aunque tiene alguanas cosas interesantes y que funcionan bien). Una última consulta para cerrar esto. Sabes si las RxLib funcionan bien en 64 bits. Se que funcionan porque las versiones no oficiales lo dicen pero no conosco nadie hasta el momento que las alla probado en 64 bits. Muchas gracias por tus comentarios. Saludos, El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno |
#6
|
||||
|
||||
El de las RX va muy bien.
No lo he probado en 64 bits. No me gusta Jedi por lo mismo, porque instala tantísimas cosas que no se usan.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#7
|
|||
|
|||
#8
|
|||
|
|||
Gracias cloayza por el aporte. Lo había visto hace un tiempo pero nunca lo use ni lo probe.
¿Comparastes los tiempos de usar esa unit con los de otros componentes de terceros tipo KbmMemTable u otros? Sería bueno hacer una prueba y ver que pasa con esos tiempo, ya que si son similares a los de otros componentes no se justifica agregar mas cosas a la compilación ni al Delphi si se tiene alguno instalado y funciona bien y rápido. Saludos, El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno |
#9
|
|||
|
|||
Amigos, he encontrado en distintos sitios de Internet que dicen que las RxMemoryData no funcionan bien desde la versión de Delphi XE hasta la XE4, por lo que no recomiendo usarlos por el momento.
Despues de leer esos comentarios hice una prueba con la versión mas reciente bajada del sitio http://www.micrel.cz/RxLib/ y efectivamente no funcionan como corresponde. Parece que no toma bien los valores cuando se realiza el post. Saludos, El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno |
#10
|
||||
|
||||
En concreto, ¿qué operaciones son las que encuentras lentas?
|
#11
|
||||
|
||||
Cita:
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#12
|
|||
|
|||
Sobre en que operación lo encuentro lento. Te cuento que lo he usado para hacer una importación de datos a Firebird de bases que vienen de DBF (uso los TDbf) y son lentos cuando se trata de insertar muchos registros. Si insertas un solo registro ni te das cuenta. Hablo con una importación de 10.000 registros mas o menos y con unos 5 campos por registro.
También he importado a Firebird con TClientDataSet desde archivos de texto plano, pero no con tantos registros como lo anterior y también he notado que tarda mucho Con respecto a las RxMemoryData que dicen que funcionan en Delphi XE4, primero hay que ver con que versión de las RxLib esta trabajando. Yo he probado la última versión en Delphi 7 y Delphi XE3 y en los dos casos no funcionan correctamente. Además si te fijas en la página de Netfalí ahí mismo hay gente que dice que a ellos no les funciona y es con varias versiones de Delphi. Saludos, El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno |
#13
|
||||
|
||||
Bueno, eso que comentas no es nada definitivo para decir que es lento, habría que ver exactamente qué haces y cómo lo haces.
En cuanto al problema que comentas, el que haya dos personas que tengan un problema con rxmemorydata tampoco es nada significativo. A saber qué están haciendo, no dicen nada. De todas formas, tienes la opción que comenta Neftalí: Cita:
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#14
|
||||
|
||||
Cita:
![]() |
#15
|
|||
|
|||
Lo de las RxMemoryData no tengo tiempo para ver el código y donde se produce el error. En este momento necesito algo que funcione bien y rapido. Cuando tenga tiempo veré donde esta el error.
Con respecto a los TClientDataSet, los he comparado haciendo lo mismo con los de las RxMemoryData pero Delphi 7 y se nota la diferencia de tiempo en lo que hace. Igualmente lo que me parece a mi y no quiero decir que siempre sea así, es que hay mucha gente que se cree que como estan en aumento las velocidades de los compoentes de las computadoras no importa si se utilizan compoentes mas lentos o mas rápidos ne sus aplicaciones. Dejenme decirles que así como aumenta las velocidades, también aumenta el volumen de información a procesar. Si uno no trata de optimizar los tiempos de las aplicaciones cuanto mas cresca la misma mas dificil sera hacerlo en un futuro. Gracias a todos por los comentarios. Saludos, El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno |
#16
|
||||
|
||||
Dentro de un tiempo, años, si vuelves a leer lo que has escrito, comprenderás.
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#17
|
|||
|
|||
Que hay que comprender. Nada mas pedía un reemplazo para los TClientDataSet y parece que todo el mundo quiere analizar si trabajo bien o no con el código.
El tema es que yo me preocupo por optimizar mi código ya que trabajo con grandes clientes que tiene mucho volúmen de información para manejar y ellos son los que se quejan que la aplicación es lenta. No digo que con esto toda la aplicación sea mas rápida, pero es un comienzo. Casimiro, vos que fuistes uno de los que necesitaba mas información hacete una prueba con los TClientDataSet, y usa otros como los kbmMemTable, los de las Jedi o cualquier otro que te guste y me contas los resultados a ver si no es como digo yo y muchos otros por ahí (esos otros son gente que tiene mucha experiencia programando en Delphi). Saludos, El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno |
#18
|
||||
|
||||
Cita:
![]() Pero a donde quiere llegar Al González y yo, es que si un coche me parece lento, no me compro otro coche, primero tendré que ver por qué va lento, pueden ser muchos los motivos, tanto del vehículo como del conductor.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#19
|
||||
|
||||
Mis preguntas van encaminadas a conocer los métodos que llamas y el proceso técnico en general. De esa manera podría intentar descubrir un mecanismo de bajo nivel que sea más eficiente.
Llevo algunos años realizando pequeñas mejoras a TClientDataSet, me son familiares varias estructuras y procesos internos de MIDAS. Si me dices qué estás haciendo con un poco más de información técnica, quizá pueda sugerir algo que sea más rápido en tu caso. |
#20
|
|||
|
|||
Esta bien, no vale la pena entrar en discución por este tema. Una cosa mas, entonces porque todo el mundo se pasa a usar otros componentes en vez de usar los nativos de Delphi TClientDataSet? Por algo será.
Para que quede claro las pruebas que hice fueron insertando dos campos uno string y el otro float. No le hice ningún prosesamiento a esos datos, simplemente los inserte y los resultados fueron que con los TClientDataSet tardaba mas que con los RxLib. No es que este diciendo algo solo porque en la misma página de kbmMemTable dicen que son mas rápidos que otros. Siempre he tomado con pinsas lo que dicen de cada cosa los desarrolladores porque ellos mismos no van a decir nada malo de lo que hacen y con eso de que son mas rápidos es propaganda. Si no aporta algun otro componente doy por cerrado esto para no discutir sobre algo que no tiene sentido y que se que cada uno tiene su punto de vista. Saludos, El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Insertar registros en TClientDataSet para no actualizarlos | delphijm | Conexión con bases de datos | 9 | 11-02-2011 20:05:51 |
TClientDataSet con SQL | David Jiménez | SQL | 3 | 23-11-2007 19:34:28 |
Procedure en Firebird lento o IbQuery lento | capo979 | Firebird e Interbase | 14 | 17-07-2007 21:35:36 |
TClientDataSet y el SO | tgsistemas | OOP | 4 | 02-08-2004 15:01:20 |
TClientDataSet | saul_montalvo | Conexión con bases de datos | 1 | 08-09-2003 04:38:10 |
![]() |
|