Lentitud en Cloud, ayuda.


([N4] Ramon Denuc) #1

Hola Foro,

Me he llevado una fuerte decepción al instalar en Cloud uno de los programas que tenemos, y me explico a continuación, para pediros ayuda de cómo hacer mucho más ligero la lectura y escritura de los registros.

Os adjunto un documento en formato DOC con toda la explicación y además incluye imágenes.

Saludos,

Programa-en-Cloud.doc (265 KB)


([N1] leonardo daniel velazquez fuentes) #2

Hola, si vas a buscar solo por 2 campos,porque en tu búsqueda tienes mas campos, solo se ponen los que se necesitan.


([N4] Ramon Denuc) #3

Hola Leonardo,

Las búsquedas estan condicionadas, al campo del dato que deseas buscar, y por donde quieres buscar.

Saludos,


([N2] jorge) #4

Hola Ramón,

La carga de los subformularios la haces según se abre el formulario principal o se cargan cuando pulsamos en la pestaña del subformulario?

Un saludo.


([N1] Manuel,Cabrera) #5

Hola Ramón.

La llamada al manejador debes hacerla en ON_SHOW para que solo se cargue si pulsas en la pestaña.

La lentitud puede estar relacionada con exceso de campos puntero, campos formula o Condiciones de estilo en la rejilla.

Saludos.


([N4] rpaton) #6

Hola:

 Mira este enlace de Francisco Vila.

ayudavelneo.com/sabes-como-optimizar-la-carga-de-plurales-en-velneo-v7/

 Saludos

 Ricardo Paton

([N4] Ramon Denuc) #7

Hola Foro,

De momento estoy realizando lo citado por Francisco en su tutorial, que Ricardo Patón me ha indicado en su entrada.

De todos modos, os diré que no tenia ningún On Show, y eso hacia que se cargaran todos los Plurales al abrir el formulario principal, también decir que no tenia claro, que Velneo al abrir un formulario cargaba todos los Plurales aunque no los utilizamos, y eso ha hecho que yo programara inicialmente mal.

Bueno me servirá para la próxima.

Ya os diré, ha ver si funciona.

Saludos,


([N4] Infortic) #8

Hola.

Aparte del tema de los plurales hay que tener mucho cuidado con las variables globales.

No hay que usarlas en condiciones de visibilidad, de activación, de sólo lectura, etc… o experimentarás una ralentización brutal, ya que cada vez que pulsas una tecla, se consulta al vServer su valor.


([N2] overBCN) #9

Hola @Infortic, te refieres a las variables globales en disco.
Saludos


([N4] Ramon Denuc) #10

Luis Palomo, me lo ha quitado, @Infortic, cuando dices Variables Globales, te estas refiriendo a las que están en Disco, no ?

Saludos,


([N4] Ramon Denuc) #11

Hola,

Sobre las Variables Globales esta es la contestación de Soporte:

Las variables globales con persistencia en disco son las que penalizarán en la ejecución. En el artículo sobre el ámbito de las variables, que está publicado en nuestra base de conocimiento (Es necesario estar validado en el Centro de soporte para poder ver su contenido), dice lo siguiente:

Debemos tener en cuenta que cada vez que se usa una variable global en disco, Velneo vClient V7 debe solicitarle al servidor el valor de dicha variable, por si ha cambiado, lo que supone una conexión a través del enganche correspondiente y, por lo tanto, mayor tiempo de ejecución que si utilizamos otras técnicas. En muchos casos leer el valor de una variable global en disco no supondrá ningún problema, sin embargo, debemos evitar usar variables globales en disco en contenidos iniciales o fórmulas de campos que se calculen en todos los registros ya que eso puede producir sensación de lentitud en nuestras aplicaciones.

Si por ejemplo usamos una variable global en disco en un campo de tipo fórmula y en una rejilla en la que se muestra ese campo cargamos una lista de registos, dado que el contenido de este tipo de campos se calcula dinámicamente, por cada registro a presentar en la lista se deberá leer el valor de la variable global en el servidor para calcular la fórmula, lo que provocará una ralentización en su carga.

El funcionamiento de las variables globales con persistencia en memoria se circunscribe al ámbito estándar de funcionalidad de este tipo de variables en los lenguajes de programación genéricos que, básicamente, consiste en ser globales a la máquina en la que se haga uso de ellas. No hay replicación entre clientes y servidor y viceversa.

Es decir, que la modificación que haga un usuario a una variable global en memoria afectará única y exclusivamente a esa sesión de Velneo vClient V7. No afecta a otras sesiones de vClient (ni abiertas en la misma máquina ni en máquinas diferentes) ni al servidor.

Todo se hace en esa sesión de vClient, con lo que no habrá conexión con el servidor para conocer su valor.


([N4] Ramon Denuc) #12

Hola Foro,

Con la recomendación que me ha dado Ricardo Paton, para que revisara el tutorial: ayudavelneo.com/sabes-como-optimizar-la-carga-de-plurales-en-velneo-v7/ he podido resolver la lentitud y pasar a rapidez cuando una vez abierto el formulario voy pulsando y abriendo las pestañas.

Pero lo que todavía sigue muy lento es la Post-Carga de la rejilla principal, es decir, donde presento todos los registros de la tabla y donde el usuario escoge uno para modificar, y que pasa, pues que una vez se han cargado dichos registros en 3 plano, el programa tarde como unos 8 segundos, para que el usuario pueda escoger el registro que quiere modificar.

Y esto no es todo, cuando el usuario pulsa sobre el registro a modificar, este tarda unos 10 segundos en estar disponible para que el usuario pueda finalmente modificar.

¿Alguna idea?

Saludos,


([N4] Infortic) #13

Hola.

Las variables en disco, efectivamente penalizan mucho (pero mucho).

Las variables en memoria, pese a que se supone que no penalizan, yo tampoco las uso nunca para condiciones porque me da la impresión de que penaliza también, las paso a variables locales de formulario. Esto ya es impresión mía pues se supone que no debería penalizar.

Ramón, si la carga en la rejilla sigue funcionando lenta,yo miraría los campos de la rejilla.

  • Si tiene campos fórmula o fórmulas en el contenido, ver si pueden penalizar.
  • Si tiene condiciones de estilo o de visibilidad, hay que revisar si pueden penalizar.
  • Si tiene campos puntero virtual (singular de plural…) penalizan la velocidad.

Un saludo.


([N4] Ramon Denuc) #14

Buenos días,

Os confirmo que las condiciones de estilo que tenia aplicadas a la rejilla me penalizaban mucho, mucho, mucho, es decir, ayer os dije que entre una cosa y la otra todo aun penalizaba unos 10 segundos, y con quitar las dichosas condiciones de estilo, todo a pasado a 1 segundo, impresionante.

Ahora entre el tutorial de Ayudavelneo y los cambios realizados todo va como una bala.

Gracias a todos por vuestra estimable ayuda, he aprendido otra buena lección.


([N2] AyudaVelneo) #15

Hola Ramón:

Me alegra saber que has solucionado el problema de la lentitud… al final es bueno programar en cloud. No te llevarás sorpresas cuando instales la solución a un cliente.

Como te han recomendado otros foreros, cuidadín también con las variables globales en disco, sobre todo si las ponemos en las rejillas (por ejemplo para el tema de decimales en cantidades).

Si tienes esta casuística, lo suyo es que en el autoexec de la app, pases esas variables globales en disco a variables globales en memoria para poder utilizarlas donde las necesites.

Un saludo


([N1] leonardo daniel velazquez fuentes) #16

Lo mismo me paso, eran los punteros indirectos… tendras que buscarte otra solucion, en mi caso, al iniciar la aplicacion actualizo la fecha de ese campo por medio de un proceso