J'ai écrit un programme Java pour télécharger une page HTML. Mais l'utilisation du CPU est proche de 100%, tandis que l'utilisation du réseau est inférieure à 3%. Il semble que le CPU soit devenu mon goulot d'étranglement. Comment puis-je réduire l'utilisation du CPU ?
Réponses
Trop de publicités?Si vous avez une boucle while continue, donnez à votre programme un peu de dormir le temps entre les itérations. Le téléchargement des pages web à lui seul ne devrait pas entraîner une utilisation aussi importante des ressources, mais vous pourriez envisager d'utiliser un profileur pour déterminer ce qui vous gêne. Peut-être que poster le code ici nous permettrait de vous aider un peu plus.
Une chose très simple que vous pouvez faire pour identifier le problème est de saisir quelques traces de pile. ctrl-/ctrl-break/jstack/jconsole/visualvm. Si le programme passe catastrophiquement beaucoup de temps là où se trouve le problème de performance (ce qui est raisonnablement probable), alors vous devriez facilement voir le problème.
Si l'utilisation du CPU est proche de 100 % pendant une longue période, il est fort probable que votre code comporte une erreur (boucle infinie ou autre). Essayez de profiler votre application pour voir ce qui se passe. Commencez par imprimer l'heure actuelle à différents endroits de votre code. Si vous n'arrivez toujours pas à le découvrir, un profileur sera nécessaire.
- Réponses précédentes
- Plus de réponses