![]() |
![]() |
| 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:
![]() |
|
#2
|
||||
|
||||
|
Creo que deberías utilizar "bancos", por ejemplo de 1.000 elementos cada uno. En cada momento sólo tienes 10 bancos en memoria mientras que en disco estarán todos. Cuando necesitas un dato de un banco determinado primero compruebas si está cargado en memoria. De no estarlo, lo carga. Si no hay espacio para tener más bancos en memoria, comprueba qué banco es el más "viejo" o el que ha sido utilizado menos veces y lo liberas (guardándolo primero en disco si ha sido modificado) para dejar sitio al nuevo banco.
Esto no sólo hará que necesites menos memoria sino también que vaya más rápido a la hora de modificar la lista en disco, ya que dudo que vayas a modificar todos los 2,000.000 de elementos en una sola vez.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi! - BAScript - Multi Language Scriptable Development Environment |
|
#3
|
|||
|
|||
|
Hola, puedes probar de generar un array dinamico y luego darle el tamaño conveniente :
ten en cuenta por eso que 2000000 de doubles es mucha memoria. Es mas que probable que muchas veces no la encuentre. |
|
#4
|
||||
|
||||
|
Un double son 8 bytes de memoria, 2.000.000 de doubles son 15 MB de memoria, pse, tampoco es tanto, los equipos de hoy suelen tener 2 GB ¿o no?
Que sí, que habrá que tener especial cuidado con reservar la memoria y con las excepciones que pueda dar, pero creo que es viable. En mi opinión, no andaba cargando "en bancos" los datos, primero haría pruebas a ver que tal va (sobre todo en el equipo del usuario, del cliente), después, si son muchos errores, atacaría por ese lado. Edito: coso, ya que has hecho la prueba, si quitas el processmessages, ¿cuanto tiempo tarda en recorrer todo el array? (gettickCount creo que era la api...) Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 13-10-2008 a las 12:19:55. |
|
#5
|
|||
|
|||
|
Pues no mucho, no...
muestra '16', con application.ProcessMessages, '47' |
|
#6
|
|||
|
|||
|
Gracias a todos
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Filtran datos de 6 millones de chilenos | MAXIUM | Noticias | 1 | 12-05-2008 21:02:59 |
| Asignar valores a Arrays dinámicos - (migrar datos desde CLIPPER) | jplj | Varios | 14 | 15-10-2007 11:49:48 |
| arrays javascript y php | halizia | PHP | 6 | 03-05-2007 13:43:31 |
| Arrays dinamicos | Besto | Varios | 4 | 13-10-2006 15:24:01 |
| arrays | nenufer | Varios | 7 | 13-05-2006 21:44:51 |
|