In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Problemas de lentitud

Foro público de Xailer en español
Responder
Avatar de Usuario
XeviCOMAS
Mensajes: 582
Registrado: Sab Mar 12, 2011 8:16 pm

Problemas de lentitud

Mensaje por XeviCOMAS »

Dado este código, ejecutado sobre un Array de unos 15.000 elementos

Código: Seleccionar todo

nSeconds := Seconds()
Ascan( AppData:aGruixos, {|x| x[1] == ::aCodiProducte[::oCboxProducte:nIndex] .and. x[2] == AppData:aProteccio[1,::oCboxProteccio:nIndex] .and. x[3] >= ::oEditMassivitat:Value .and. x[15] == ::oCboxTempCritica:cText} )
logdebug( Seconds() - nSeconds )  //1,50 a 2 segundos

nSeconds := Seconds()
c1 := ::aCodiProducte[::oCboxProducte:nIndex]
c2 := AppData:aProteccio[1,::oCboxProteccio:nIndex]
n3 := ::oEditMassivitat:Value
c4 := ::oCboxTempCritica:cText
Ascan( AppData:aGruixos, {|x| x[1] == c1 .and. x[2] == c2 .and. x[3] >= n3 .and. x[15] == c4} )
logdebug( Seconds() - nSeconds )  //0,01 segundos
No entiendo el porqué el segundo se ejecuta mil veces más ràpido que el primer caso.

No me ocurre en TODAS las PCs, sinó que algún cliente que tiene por ejemplo una con procesador Raiden, o una con un i7, les ocurre que va lento este proceso.
... yo tengo una i3 10generación o una antigualla de intel celeron con 4Gb, y no tengo problemas de velocidad.
Yo tengo Windows 10 o 11 Enterprise 64bits mi cliente Windows 10 o 11 Home.

Si alguien me pudiera dar alguna explicación, se lo agradecería, ya que me ayudaria a entender un poco más el funcionamiento interno, creo, y así poder depurar igual otras aplicaciones que estoy utilizando como el primer caso y que sin darme cuenta, igual lo estoy haciendo yo mal.
Un Saludo,
Xevi.
Avatar de Usuario
Hurricane
Mensajes: 262
Registrado: Mar Mar 24, 2015 10:21 am
Ubicación: Brasil
Contactar:

Re: Problemas de lentitud

Mensaje por Hurricane »

simples,
Objeto x Variável simples, com objeto precisa procurar em tempo de execução as propriedades da classe, é natural que seja mais lento, não é um problema.
Em cada trecho de código, o programador sempre terá que escolher o que deve usar, até uma função no lugar errado tornará mais lento.

Na primeira empresa onde iniciei profissionalmente, eu sempre via os relatórios no sistema Clipper, lendo tabelas:
do while ! EOF() .AND. DATE() <= dData

eu trocava a função por variável, então ficava +50 segundos mais rápido...
XeviCOMAS escribió: Mar Ene 11, 2022 8:36 pm ejecuta mil veces más ràpido que el primer caso.
Developments | Trainings | Projects
Site | E-mail | Messenger | YouTube
Avatar de Usuario
XeviCOMAS
Mensajes: 582
Registrado: Sab Mar 12, 2011 8:16 pm

Re: Problemas de lentitud

Mensaje por XeviCOMAS »

Gracias por la respuesta.

Le veo la lógica, si. Aunque, no puedo entender que en algunas máquinas no se vea esa merma de tiempo.
Un Saludo,
Xevi.
Responder