![]() |
Programa congelado debido a la carga
Buenas a todos,
Tengo un PC (Windows XP) dónde estoy ejecutando tres aplicaciones a la vez y me es necesario así porque ese PC saca información a pantallas al exterior con una tarjeta gráfica de 4 salidas (salida a TV). El primero proceso y el más costoso realiza un proceso que tarda más o menos 1,5 segundos y deja congelado al pc mientras se ejecuta y esto ocurre cada 4 segundos. El segundo sistema es más pequeño y es rápido en su ejecución (casi no le afecta) El tercer sistema es rápido en su ejecución pero es el que más molesta en su visualización se trata de un reloj y una cuenta atrás (Timer cada segundo), debido al efecto del primer programa a veces se salta segundos (se congela). Por ejemplo en el reloj se observa: 10:15:23, 10:15:24, 10:15:26 (no llega a verse pintado la 10:15:25). He probado usando la afinidad de CPU's al ser un sistema de doble núcleo con windows XP. Lo conveniente sería que una CPU se ocupase de los dos primeras aplicaciones y otra CPU se ocupase del tercer sistema (Visualización del reloj) para evitar la congelación. ¿Alguien se ha encontrado con algo similar?. ¿Alguien ha soluciona esto?. ¿Algún sistema que lo resuelva o través de configuración?. Gracias a todos por vuestra colaboración. |
Hola rabata2001,
Lo único que puedes hacer es que lo realices con hilos, puede ser la solución a tu problema. Un saludo. |
Cita:
Rabata2001, dices que has probado lo de asignar afinidad a los procesadores . ¿Has comprobado que se asigna bien? ¿Has usado imagecfg u otro programa? Si es así y el problema sigue estando, es posible que no sea problema del procesador, sino de otra cosa. Asumo que el proceso que te provoca "la parada" en el sistema es el primero. ¿Si lo paras, los otros funcionan bien? Si ya tienes claro que el problema está en ese proceso, habrá que centrarse en él, para solventarlo. ¿Exactamente qué hece ese proceso que bloquea? |
buenas tardes y gracias por vuestro comentarios
Cita:
Cita:
Cita:
Saludos. |
Cita:
Cita:
Cita:
Deberías poder comprobar eso mirando el gráfico de procesadores. En ese caso sólo 1 debería estar al máximo. No tiene sentido que se te bloquee TODO el equipo. |
¿Has probado a subir o bajar la prioridad de los procesos?
En el Administrador de procesos, seleccionas el proceso y con botón derecho haces click. Luego vas a "establecer prioridad" y eliges alguna. Prueba a subir la del primero y bajar la de los otros dos y también la contraria, bajar la prioridad del primer proceso y subir la de los otros dos. |
¿El primer proceso lo has hecho tu?
Si es así, quizás podrías hacer que devuelva el control después de cada parte que ejecuta:
o
|
rabata2001,
Cita:
1- Si el primer proceso se ejecuta en 1.5 seg en promedio y este se ejecuta cada 4 seg aproximadamente, esto implica que en un minuto el PC estará bloqueado 22.5 seg (60 seg / 4 seg * 1.5 seg), según la descripción del problema, luego en una hora el PC estará bloqueado 22.5 minutos en promedio. 2- ¿Has considerado utilizar hilos en el primer proceso como se sugirió en el Msg #2?, el proceso en si bloquea el PC, si este es dividido en hilos esto mejorara el rendimiento de dicho proceso, en el menor de los casos usar la instrucción Application.ProcessMessages como se sugirió en el Msg #7, aunque en este caso es aconsejable incluir programación por hilos en el primer proceso en función de la descripción del problema. Pregunto: 1- ¿Cuales son las especificaciones técnicas del PC que ejecuta los procesos a nivel de Hardware y Software (CPU, RAM, Hard Disk, Motherboard, Tarjeta Gráfica y SO)?. 2- ¿Tienes acceso al código fuente de los programas?. 3- ¿Haz considerado optimizar el algoritmo de clasificación de resultados del primer proceso?. 4- ¿Que otros procesos se ejecutan en el PC, que puedan afectar el performance de los procesos en cuestión (Antivirus, Servicios, Utilitarios, Aplicaciones, etc?. 5- En el caso de que la PC en cuestión tenga un bajo nivel de prestaciones, ¿Haz considerado hacer un upgrade de la misma?. 6- ¿Existe la posibilidad de probar las aplicaciones en cuestión en otra máquina para contrastar su performance con el PC original?. La decisión de un cambio de hardware o una actualización de los procesos dependerá del nivel de criticidad de las aplicaciones, los recursos disponibles y los análisis realizados en función de todo lo comentado. Espero sea útil :) Nelson. |
No sirve con solo saber cual es el programa. Hay que saber cual es el codigo, exacto, que provoca el bloqueo. Muéstranos eso y vemos que se puede hacer.
|
Muchas Gracias a todos.
Ya he conseguido desbloquear. existían dos problemas: El primer Problema.- se solucionó haciendo mas eficiente el segundo programa, aunque era pequeño, pero también consumía recursos (cada seg.) El segundo problema.- También solucionado. Estoy usando en el programa más costoso, los alpha skins, este proceso saca del mismo PC 5 pantallas a TV, se consumen muchos recursos al utilizar los skins y bloqueaba también el pc, ha sido deshabilitar el skins y va muchísimo mejor. El sistema donde se ejecuta al ser windows xp no sé si asocia correctamente afinidad y prioridad. Gracias nuevamente a todos por vuestros consejos. De todas formas aplicaré mejoras de rendimiento, os tendré al tanto. |
rabata2001,
Cita:
Cita:
Espero sea útil :) Nelson. |
Estoy pensando no sólo en windows 7 sino pasarme directamente a Windows 8, para ver el rendimiento de todas las aplicaciones del sistema
|
La franja horaria es GMT +2. Ahora son las 06:54:30. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi