Bonjour,
Je suis nouveau sur le forum, mais j'en apprécie fortement le contenu.
Mon problème est le suivant :
j'ai développé en C un programme qui utilise une carte de communication spécifique, une base de donnée (Mysql) et un serveur web (apache) hébergé sur le disque.
au début tout va bien, j'ai une utilisation de la cPU à 2 à 3% avec 5Mo de mémoire utilisée.
Mon programme tourne en mode boucle (les mêmes tests sont effectués sans relache) 24h/24 et affiche les résultats au fil de l'eau sur une console DOS.
çà défile tout le temps et là y'a pas de problème.
Cependant, au bout d'environ une douzaine d'heure, je constate que le temps CPU utilisé par mon programme passe à 90% avec des pics à 100%, et ce avec :
- une utilisation mémoire qui n'a pas beaucoup bougé (5 à 6 Mo)
- et + surprenant je n'ai aucun ralentissement sur le PC des autres process standard ou spécifique : je lance l'explorateur sans problème et sans attente, ou de la navigation sur internet ou office sans constater un retard quelconque.
- si je lance une application gourmande en CPU (ex : WinTV), et bien pas de problème, le temps CPU se divise sans problème entre les deux (60% pour mon programme et 30% pour WinTV), puis si j'arrete WinTV, alors mon process revient à 98%.
- j'ai remarqué par contre que si mon écran passait en veille depuis un certain temps, (toujours avec mon programme qui tourne derrière) et bien le temps de réaffichag de l'écran (suite à la pression sur une touche) peut être long (15 à 20 secondes), c'est vraiment le seul cas où je constate un ralentissement momentané, et encore ce n'est pas systématique
Avec processExplorer, j'ai pu voir que mon programme utilise 3 threads :
- mon programme pour 45% de temps CPU
- msvrt.dll pour 45% de temps CPU (bib de runtime pour le C je crois)
- le driver de la carte de com utilisée pour 2à 3% de CPU
et c'est tout (pas d'autre pilotes ou de process tiers).
J'utilise un PC 2GHz DualCore HP Pavillon avec Windows Home, AVG comme antivirus et ZoneAlarme comme FireWall (cela ne change rien qu'ils soient actifs ou non) et 1,5Go de mémoire virtuelle.
le journal des performances ne me dit rien non plus
Tout ce que je peux dire, c'est que tant que je continue à me servir du PC au début du lancement, je ne rencontre pas de problème mais si je le laisse tourner tout la nuit sans y toucher (et avec mon appli en cours) et bien le matin j'ai le droit au 100% mais sans l'effet d'attente lié au 100%
Je n'ai trouvé aucun moyen d'y pallier (hormis de lancer d'autre exe). En somme mon process se comporte un peu comme le "processus inactif du system (IDLE)" du gestionnaire des tâches .
Quelqun ou quelqune a t'il une idée ?
Merci d'avance