Page 1 of 1

Problema de velocidad

PostPosted: Sat Feb 25, 2006 9:38 pm
by astursoft
He realizado un codigo muy simple que se lanza desde un boton
Code: Select all  Expand view
FUNCTION recorre()
   LOCAL i:= 1
   articulo->(DBGoTop())
   DO WHILE !articulo->(Eof())
      articulo->lfiltro:= 1
      i++
      IF i > 300
         msginfo("2")
         i:= 1
      endif
      articulo->(DBSkip())
   enddo
   msginfo("fin")
RETURN nil

Es una Tabla de unos 4800 registros .
El caso es que probado en el simulador ( sin los mensajes ) tarda unos 4 segundos en hacerse .
Pero al pasarlo al pocket se me para , pongo los mensajes para ver por donde va y resulta que tarda en recorrer los 300 registros unos "40 segundos" , osea los 4000 registros es impensable .
Espero alguien mire si esto ocurre en otros pocket , o solo es el mio .
Probado con la version anterior de harbour y la de hoy mismo .
saludso.

PostPosted: Sun Feb 26, 2006 7:29 am
by Antonio Linares
Jose Luis,

Que cantidad de memoria tienes en el Pocket PC ? Y en el emulador ?

PostPosted: Sun Feb 26, 2006 8:51 am
by astursoft
en el emulador , mirando en memoria :
Almacenamiento:
Asignada ->14.85MG
libre->14.09MG
Programas :
Asignada->14.85
Libre->9.18

En el pocket
Almacenamiento:
Asignada ->27.50MG
libre->23.28MG
Programas :
Asignada->27.50
Libre->18.37

El Programa se ejecuta en una SD card de 512 mg con 100 mg libres por lo menos .


--------------------- editado -----------------------------

Antonio , problema localizado .
Esta en el acceso a la SD card .

El mismo programa sin tocar pasado a Storage ROM funciona a una velocidad decente .
Ahora la pregunta , se mantienen los datos en storage ROM ante Hard reset ?

PostPosted: Sun Feb 26, 2006 11:48 am
by Antonio Linares
Jose Luis,

Si, tienes razón, va a ser la velocidad de acceso a la SD card. En cuanto al reset acabo de hacer una prueba con el programa de Carles, y sí, se mantiene tras el reset.

Otra solución sería trabajar fuera de la SD card y luego copiar al final los datos a ella por seguridad.

PostPosted: Sun Feb 26, 2006 12:46 pm
by astursoft
Antonio , tienes razon , esa será la opción , trabajar en ROM y salvar a SD , he mirado y con un reset a secas se mantienen los datos , pero con un "Hard Reset " (alguno he tenido que hacer ) se pierde todo , el PDA sa pone a Cero .
Miraré la combinacion de programa en SD y datos en ROM a ver que tal ...
Gracias por tu tiempo.
Saludos.

--------------------- editado --------------------------------------

Con el Programa en SD y datos en ROM la velocidad es decente , creo que optaré por copiar datos a rom al lanzar el programa y volcarlos a SD al salir del programa , o al hacer algún cambio importante ,( Grabar pedidos por ejemplo).
saludos.

PostPosted: Mon Apr 10, 2006 3:25 pm
by Biel EA6DD
Hasta ahora no habia notado el bajo rendimiento al trabajar sobre SD, pero con procesos masivos (importar los ficheros maestros, precios, etc) la verdad es el rendimiento es muy pobre. Nada que ver cuando los datos estan en ROM que es rapido.
Claro q un HardReset, o quedarse sin bateria implica perdida de datos.
No tengo claro donde dejar los DBF, aunque creo que sera mejor lento pero seguro.

PostPosted: Mon Apr 10, 2006 4:21 pm
by astursoft
Biel , engaña al usuario ...
Cuando tengas que hacer procesos largos y lentos , crea en rom un directorio temporal , copia la dbf a este directorio ( eso es rapido ) , ejecuta el proceso con las bases de datos en rom , y luego cuando termine el proceso , copia la dbf resultante a la sd de nuevo .
Saludso.

PostPosted: Tue Apr 11, 2006 9:24 am
by Biel EA6DD
José Luis,
gracias por la sujerencia, lo he probado copiando los dbf a ROM y una vez terminada la importacion volverlos a mover a SD, y funciona perfecto, la importacion es rapida, y la copia de ficheros casi no se nota.
Gracias.