
Rendimiento de aplicaciones en W8
#1
Posted 28 April 2014 - 10:59 AM
Amigos del foro, resulta que tengo varias aplicaciones realizadas en DELPHI 7 y con conexion a BD Firebird 2.5. Estas aplicaciones funcionan de manera correcta en sistemas operativos WXP, W7 y algunos W8. Pero he tenido inconvenientes con esta ultima. Las maquinas del cliente donde se presentan los problemas tienen las siguientes características:
sistema operativo Windows 8.
Procesador Core I3
Memoria de 4gb
disco de 1 Tera.
Acerca del SO:
Windows 8 single language
Version 6.2 (compilacion 9200)
sistema operativo 64 bit procesador x 64
El inconveniente es en cuanto a rendimiento se refiere, presenta lentitud al momento de cargar los forms. He revisado tiempos de respuesta al momento de ejecutar los diferentes sql's. Pero los resultados son bastantes conformes, intente actualizar el SO, quedando en Windows 8.1 single language Y PERSIGUE EL PROBLEMA.
Anteriormente se hicieron pruebas en WINDOWS 8.1 Pro tanto de 32 como de 64 bits y los resultados fueron satisfactorios, y como había mencionado anteriormente no tiene problema alguno en esta versión.
Quisiera saber si a alguien se le ha presentado este inconveniente y pudo encontrar una solución al respecto
Quedo atento y agradecido a sus sugerencias y/o comentarios.
#2
Posted 28 April 2014 - 12:48 PM
Respecto a win8 en especial, tengo bastantes usuarios ya con W8 y nadie me ha reportado nada anómalo.
#3
Posted 28 April 2014 - 04:17 PM
Saludos.
#4
Posted 28 April 2014 - 04:30 PM
#5
Posted 28 April 2014 - 04:46 PM
Voy a preguntar algo obvio... ¿Te aseguraste de que se esté utilizando la versión correcta a la arquitectura? Dices que tienes tu aplicación funcionando en entornos de 32, y que tu cliente tiene 64. Si instalas la edición de Firebird de 32bits en un entorno de 64 es de esperarse un menor rendimiento.
Temas de lentitud también no sólo puede deberse por la extensión del fichero (que eso no es problema de Firebird, sino una vil maniobra por parte de Microsoft en agregar la extensión a la lista de archivos asociados con las copias de restauración) sino por el manejo de transacciones mal cerradas, índices mal empleados, un backup/restore corrompido, o quien sabe... hasta podría ser algo de red, e incluso hardware que se está dañando.
Lo único que veo en tu descripción de los problemas es que despierta más dudas que hallar una respuesta. La verdad es que por lo poco que nos comentas vaya a uno a saber que puede ser. Sinceramente tu planteo es muy abstracto y nada concluyente. Tu eres el diseñador del sistema, tu lo conoces.
Para que te podamos ayudar, va a ser necesario que nos des muchísima más luz. Te invito a interriorizarnos más a fin de poder emular tus condiciones, o bien, determinar que de diferente hay entre los entornos en donde te funciona bien y en donde anda mal.
Saludos,
#6
Posted 28 April 2014 - 04:54 PM
Los clientes en Windows 7 y XP funcionan bien, pero la misma versión en W8 es lenta. puede ser alguna incompatibilidad entre Delphi 7 Windows 2007 y W8.
Saludos.
#7
Posted 28 April 2014 - 06:13 PM
Inicialmente el cliente reporto inconvenientes del Aplicativo en una maquina que tenia instalado W8, dichos problemas era al momento de cargar algunos forms de la aplicación(algo asi como entre 10 - 15 seg). Como inicialmente no se tenía mas información, se procedió a hacer seguimiento al aplicativo mencionado con una maquina W7 y otra de W8 "WINDOWS 8.1 Pro" tanto de 32 como de 64 bits en ambos casos, y funcionaron perfecto sin ningún problema y se descarto que fueran problemas de compatibilidad o algo parecido. Dicho cliente manifestó nuevamente su problema y se procedió a solicitar las características tanto HW como SW de tal manera que se pudiera recrear el error. El HW utilizado fue el mismo en el que se realizaron las primeras pruebas lo único que se cambio fue el Sistema operativo y he ahí el problema el aplicativo si presenta problemas de rendimiento con esta versión en particular de W8.
Haciendo referencia a:
Windows 8 single language
Version 6.2 (compilacion 9200)
sistema operativo 64 bit procesador x 64
Inicialmente se evaluaron los sql que se ejecutaban al momento de cargar el formulario pero haciendo seguimiento los querys se ejecutaban en tiempo normal, pero especificamente el rendimiento se ve afectado al momento de realizar:
formulario.showmodal;
Asumo que pueda ser al momento de cargar algun componente, son simples suposiciones.
En cuanto al comentario: "Tu eres el diseñador del sistema, tu lo conoces", no simplemente le realizo mantenimiento a un sistema que ya esta realizado.
Cualquier comentario, o sugerencia al respecto, quedo totalmente agradecido.
#8
Posted 28 April 2014 - 08:44 PM
Si eres el desarrollador o el que efectúa el mantenimiento es lo de menos, el punto es que estás tu a cargo y debes conocer en profundidad el sistema como para determinar mucho mejor lo que está pasando.
No es mi intensión ser prepotente, ni severo... el punto es que estás tu al frente de la PC viendo el sistema y nostros lo desconocemos totalmente. Y en vista a esto nos estás pidiendo que saquemos una conclusión, lo más que podemos hacer es tirar más incógnitas que respuestas. Como decimos por aquí, si quieres sacamos nuestras bolas de cristales y empezamos.

Ahora bien, si dices que los problemas de rendimiento se presentan marcadamente en cuanto se envía el mensaje ShowModal de cualquier formulario (si es que no interpreté mal) puede deberse principalmente, como dices, a algún componente (por lo menos uno) que hace algo al momento de la visualización... pero no es necesariamente un problema de un componente, sino de alguna operatoria.
¿Que procesos se disparan o tienen lugar durante la creación y/o visualización del form?
El decir que es a causa de un ShowModal nos acerca más a por donde apuntar, refinemos mejor la puntería. ¿Que componentes visuales usas? ¿Componentes de terceros, cuáles, que versión? ¿Componentes de acceso a base de datos? ¿IBX? ¿DBExpress? ¿ADO? ¿Zeos? ¿UniDAC? Necesitaremos poner una lupa en eso. ¡Danos más detalles por favor!
Saludos,
#9
Posted 29 April 2014 - 02:39 AM
Pero supongo que no puedes hacer un debug en esa maquina: instalar delphi y hacer lo que sea que va lento con el debugger activo, a ver donde pierde tanto tiempo.
Un cosa interesante a mirar: abre el administrador de tareas, abre ese from que va lento, y durante esos 10 o 15 segundos mira a ver si la CPU que consume tu aplicacion sube a tope y se va a cero.
Si sube a tope, malo por la aplicacion, si se queda a cero, malo por el SO... esto da bastantes pistas! Y si en lugar de la utilidad de windows usas proccess explorer, entonces puedes averiguar que dll o lo que sea está quedandose con tu CPU.
#10
Posted 29 April 2014 - 08:44 AM
Es mejor emplear Process Explorer como dice Sergio o algún otro utilitario de terceros. Al menos con PE vas a tener más info que la que puede darte el administrador por defecto.
Cualquier novedad, aquí estamos.
Saludos,
#11
Posted 29 April 2014 - 05:54 PM
Estoy haciendo un debug sobre los fuentes de la aplicación y quizas donde mas se tarda es cuando trata de cargar los componentes TMS, especificamente TAdvPanel y AdvToolBtn, sin embargo contestando la pregunta de Delphius acerca de los componentes la mayoria son TMS5 y en algunos casos se cargan unos frames que utilizan los componentes estandar de la instalación de Delphi 7, con respecto a la conexion de BD, simplemente utilizo los componentes INterbase.
Ahora contestando la pregunta de Sergio acerca de OnFormShow y FormResize, no hace nada en dichos eventos.
Pensaria que el problema puede estar en los TMS, pero no tengo la version especifica de dichos componentes, por cuestiones de tiempo no tengo el dato exacto de esa versión, pero mañana a primera hora lo consultare.
Cualquier otra luz al respecto, quedare muy agradecido con uds.
#12
Posted 29 April 2014 - 06:21 PM
Algo a considerar en W8 es el tipo de interfaz/tema usada. Yo desconozo como es la cosa en W8 ya que no tuve oportunidad de usarlo. Si usas estilo metro las cosas son diferentes al tradicional.
no vendrá por allí la mano también?
Saludos
#13
Posted 29 April 2014 - 08:40 PM
Pensaria que el problema puede estar en los TMS.
La verdad no creo que sean los TMS, yo tengo una aplicación que usa los TMS compilada con Delphi 2006 y corre sin problemas sobre W 8.
Como sugieren los compañeros revisa bien el código de los eventos OnCreate, OnShow, OnResize y hasta OnLoaded (este último es protegido pero a veces lo sobre-escriben con diferentes técnicas); y no solo los eventos anteriores si no también los procedimientos que crean y muestran el form, podrían haber otros procesos dentro del procedimiento o función que causen el problema, por ejemplo podría haber algo así:
procedure CrearForm; begin CrearConexion; Conectar; AbrirConsulta; TraerDetalles; CrearForm; MostrarForm; end;
Otro punto a revisar es que de pronto hayan diferentes hilos de ejecución y sea otro hilo el que cause el retardo.
Finalmente las pruebas entre diferentes OS deberían ser exactamente iguales en cuanto a la cantidad de datos que traen las consultas (si es que se traen datos en la carga del form), ten presente que en algunos diseños los forms cargan datos de la última consulta y si esta es pesada pues retardará la carga del form.
Saludos.
#14
Posted 09 May 2014 - 04:45 PM
Amigos foreros, muchas gracias a todos por tomarse su tiempo en tratar de solucionar este inconveniente, la solución fue mas sencilla de lo esperado. En vista que solo ocurria con esta versión en particular de windows 8. La solución simplemente era ejecutar mi aplicacion como Administrador y utilizar modo de compatibilidad de windows 8, selección que no estaba activa.
Reitero nuevamente mis agradecimientos.