FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Rendimiento TStringList
Hola foristas...
tengo una unidad con varias lineas de código (unas 600) que tiene como finalidad realizar tratamientos para playlist. Para hacerla fácil he definido una Clase que hace todo el trabajo, y me he valido del TStringList ya que éste ofrece el LoadFromFile, el SaveToFile, el Add y Delete. Y esto me permitió formar un archivo en donde guardo una lista de temas con una cierta estructura. Dicha estructura guarda en una línea toda la info que se requiere (Artista, Tema, Duración, Género, Album, Directorio) para cada tema. Anda bien, bastante bien, según las pruebas que he realizado. Ahora me he preguntado si es lo más conveniente ya que para listas sumamente grandes (en los miles) tal vez sea un desperdicio de memoria. La máxima prueba que he realizado fue con una lista de 1500 temas y no se siente diferencia alguna en el rendimiento, ¿cuál será el límite que es capaz de soportar el TStringList sin que afecte en gran medida su rendimiento? Entonces mi duda es si mi método es lo más conveniente, en cuanto a rendimiento. Es lo más fácil que se me ha ocurrido, a lo mejor alguien tiene otra manera de hacerlo. Adjunto el código por si a alguien le interesa. |
#2
|
||||
|
||||
Puntos fuertes
Me ha gustado mucho tu unidad, muy muy bien organizada para mi gusto, y se lee sin mayor complicación. En todo momento se sabe lo que se está haciendo, debido a los intuitivos nombres que le has puesto a los métodos. Amén de usar código claro, conciso e indentado (no es mi forma de indentar... pero es clara). Críticas (como no, de eso se trata ) Quizás me desconcertó unos milisegundos una variable "i" de tipo Boolean jejeje, y las constantes infoX que podrian haberse llamado D_Artista; D_Tema, etc. ¿Mejoras? Una mejora podría ser implementar el método QuickSort, usarlo si la lista contiene más de X elementos, y si no, usar el método burbuja mejorado que usas actualmente. Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#3
|
||||
|
||||
gracias
Cita:
Gracias por el comentario que emitiste... Pero...sigo sin entender cómo podría saber que tan alto pueda ser el rendimiento del TStringList. Me gustaría saber que opinan o cómo lo harían algunos foristas. ¿Es realmente mi código el más adecuado?¿Que tanto puede resolverve las cosas el TStringList? |
#4
|
||||
|
||||
Cita:
¿Alguien tiene idea de cuánto pueda ser esa cantidad? |
#5
|
||||
|
||||
y por qué no haces tú mismo la prueba y así puedes valorarlo según te resulte. Puedes crear un simple bucle y añadirle varios miles de entradas e ir probando cada vez con algunos miles más, así poco a poco, e ir anotando memoria consumida, tiempos, etc.
Al menos es eso lo que yo haría, probarlo hasta que sea inoperativo y así saber con exactitud hasta cuanto "aguanta". |
#6
|
||||
|
||||
Cita:
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! |
|
|
|