![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Cita:
. Pasa casi siempre.Creo que si Delphius estan pidiendo opinion es porque ya lo ha probado hasta los limites que entiende. ![]()
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
|
#2
|
|||
|
|||
|
En cuestion de rendimiento hay dos cosas a tener en cuenta, por un lado la cantidad de memoria que se utilice, y por otro la velocidad de acceso a los datos.
Uso de memoria: Un TStringList en principio no tiene limitacion de memoria, el limite lo pone la arquitectura de los PCs y la cantidad de memoria ram que tenga el equipo, puedes guardar hasta 2^30 elementos, unos mil millones aproximadamente. Puedes hacer tu mismo una estimacion de la memoria RAM que se necesitara, poniendote en el peor caso, por ejemplo para 10.000 elementos , si suponemos que cada elemento tuviese de 255 caracteres de largo, necesitariamos mas o menos: sobre (255+16)*10.000 = 2.5 megas de RAM. Velocidad de acceso: Si se necesitan hacer busquedas no exactas sobre todos los elementos, es necesario recorrer la lista entera, esta es la forma mas lenta de acceso, pero para unos pocos miles de elementos normalmente es casi instantaneo. Para una busqueda exacta puedes mantener la lista ordenada, (El objeto TSTringList se puede mantener ordenado automaticamente por si mismo, ya que implementa internamente el algoritmo quicksort). En definitiva segun mi opinion: Si los elementos son unos pocos miles, un stringlist puede ser mas que suficiente, si los elementos fuesen cientos de miles o millones, ya no nos cabrian todos en memoria ademas de que las busquedas se harian mas lentas, y en ese caso necesitariamos utilizar una base de datos o hacerse un mini gestor de base de datos propio para no tener cargada a memoria toda la informacion. Saludos Miguel |
|
#3
|
||||
|
||||
|
Gracias...
Cita:
vtdeleon ha dicho algo cierto: para uno es algo perfecto pero para otros no lo es y por eso que pedí una opinión al respecto. Otra cosa, yo pregunté cómo o de que otra manera se podría hacer otro estudio de rendimiento y entiendo perfectamente que dependerá en gran medida del hard que posea el equipo. Tal cual lo dice Mick: Cita:
Hasta el momento he llegado a la conclusión de que el TStringList (para mi propuesta) puede presentar falencias al llegar al 50% de la memoria que disponga la PC del usuario. Para esto tuve en cuenta que: 1. Es necesario la operación de lectura elemento por elemento (a excepción de algunas funciones). 2. Es poco probable de que tenga unicamente a mi aplicación ejecutándose solamente. Hasta el momento he llegado a eso... y creo que el uso del TStringList puede serme util siempre y cuando el usuario no pretenda forzar mi aplicación. Si pudiese tener una "medida" que sea independiente del hard a lo mejor la conclusión sería otra. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|