[JAVA] L'utilisation du processeur à 100% est-elle mauvaise?

2019/9/29 Révision partielle

==========================================================================

0. Introduction

Merci beaucoup d'avoir vu post précédent. Cela fait longtemps depuis la dernière fois, mais cette fois, j'aimerais vous présenter un sujet qui m'intéressait beaucoup à partir des livres suivants que j'ai lus récemment (en septembre-octobre 2017).

Écrit par Scott Oaks, traduit par Acroquest Technology Co., Ltd., traduit par Kao Terada, traduit par Satoshi Makino "Java Performance" publié par O'Reilly Japan https://www.oreilly.co.jp/books/9784873117188/

1. Signification de «100% d'utilisation du processeur»

Comment pensez-vous d'une situation où l'utilisation du processeur est de 100%? Je ne pense pas que vous ayez une bonne image, "Cela ne nuit-il pas aux performances?" Le livre déclare que ce n'est pas toujours le cas.

Je vais citer le texte, mais tout d'abord, l'auteur de ce livre

Supposons qu'un programme prenne 10 minutes à s'exécuter et que l'utilisation du processeur pendant cette période soit de 50%. Si vous pouviez l'ajuster à 100%, cela doublerait les performances et fonctionnerait en 5 minutes. Si nous pouvions doubler les performances ici, l'utilisation du processeur resterait à 100% et le temps d'exécution serait de deux minutes et demie.

Après avoir donné un exemple, «l'utilisation du processeur indique l'efficacité avec laquelle le programme utilise le processeur» et conclut que «plus cette valeur est élevée, plus elle est souhaitable». ..

Bien sûr. Lorsque le programme est exécuté, le module de programme est étendu du disque à la mémoire, et les informations stockées dans la mémoire sont lues séquentiellement par la CPU et exécutées. Il est souhaitable du point de vue des performances si le programme peut être exécuté sans laisser reposer le processeur.

2. Cas qui ne correspondent pas à une "utilisation à 100% du processeur"

Au contraire, lorsque le programme est exécuté, si le processeur est au repos, en d'autres termes, s'il n'est pas utilisé à 100%, il y a une raison pour laquelle le processeur ne fonctionne pas, et une analyse et parfois un réglage sont nécessaires pour cela. est.

L'auteur de ce livre cite les trois causes suivantes comme cas où le processeur n'est pas utilisé à 100%.

Pour les première et deuxième causes ci-dessus, «Si vous pouvez réduire la contention pour les verrous et régler pour accélérer la réponse de la base de données, ... L'exécution du programme sera plus rapide et l'utilisation du processeur augmentera. Va monter. " Par contre, comme pour la troisième cause, par exemple, on suppose qu '«une application serveur qui attend une requête d'un client» «traite toutes les requêtes HTTP en attente de traitement et attend la requête suivante». Dans ce cas, le CPU est au repos, indiquant qu'il est toujours prêt à accepter les requêtes HTTP.

3. Pensez à la signification de l'utilisation du processeur

À propos, l'utilisation du processeur fait généralement référence au pourcentage de la quantité de processeur en cours d'exécution pendant une durée donnée. Si vous exécutez 450 millisecondes pendant une durée donnée de 1 seconde, l'utilisation du processeur signifie 45%. D'un point de vue différent, 450 millisecondes d'une seconde fonctionnaient pleinement, donc si vous citez ce livre,

En d'autres termes, 450 millisecondes sur 1 seconde correspondent à 100% d'utilisation du processeur et les 550 millisecondes restantes à 0%. Cette condition est appelée taux d'utilisation du processeur de 45%.

Voilà pourquoi. Est-il raisonnable de voir l'utilisation du processeur de 45% (le processeur ne fonctionnait pas pendant 550 millisecondes par seconde)? Où dois-je le réparer s'il n'est pas valide? Vous devez y penser.

Quatre. À la fin

Le but ultime lors de l'exécution d'un programme est d'utiliser le processeur complet et de le terminer en peu de temps. En d'autres termes, maximisez les performances avec une utilisation du processeur à 100%. Par conséquent, si le processeur a le temps de se reposer, réglez-le selon les besoins, comme décrit ci-dessus. Ne vous méprenez pas ici, une utilisation à 100% du processeur est un moyen d'améliorer les performances, pas une fin. Si vous essayez d'exécuter un programme et que l'utilisation du processeur est de 100% pendant une longue période, non seulement cela se terminera en peu de temps, mais cela empêchera d'autres programmes de s'exécuter, ce qui entraînera de mauvais résultats. .. Au contraire, même si le taux d'utilisation du CPU est de 70%, si les performances qui répondent aux exigences sont obtenues, on considérera qu'il n'y a pas de problème. "Utilisation du processeur à 100%" n'est pas mal. Cependant, il faut dire que l'on obtient de bonnes performances.

5. Mis à part

Quand vous pensez aux livres Java, beaucoup de gens pensent aux livres d'introduction commençant par "Qu'est-ce que Java?", Aux livres qui expliquent lors de la création d'applications Web et aux livres qui présentent les modèles de conception. Ce livre se concentre sur les performances Java. Le savoir-faire et la méthode d'analyse pour améliorer les performances Java, le mécanisme de garbage collection dans les options JavaVM, etc. sont expliqués. Bien que ce soit un livre traduit, je pense que c'est le seul livre au Japon qui se concentre sur ce point de vue. Si vous êtes intéressé, veuillez le récupérer et jeter un œil.

Merci d'avoir lu jusqu'ici.

Recommended Posts

L'utilisation du processeur à 100% est-elle mauvaise?
Pourquoi nul est dit mauvais