[PYTHON] Lors de l'utilisation de pygame sur Ubuntu 16.04, l'utilisation du processeur est de 100%

Symptômes

L'utilisation de pygame sur Ubuntu 16.04 entraîne une utilisation du processeur à 100%.

main.py


import time
import pygame

pygame.init()

while True:
    time.sleep(1)

C'est un code qui ne fait rien, mais si vous le cochez en haut

top


top - 13:18:43 up  6:21,  1 user,  load average: 0.78, 0.56, 0.48
Tasks: 329 total,   1 running, 328 sleeping,   0 stopped,   0 zombie
%Cpu(s): 26.0 us,  4.8 sy,  0.6 ni, 68.2 id,  0.4 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 12222916 total,  5867808 free,  3502168 used,  2852940 buff/cache
KiB Swap: 12502012 total, 12502012 free,        0 used.  7608068 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND     
18635 USER     20   0  704956  31568  18668 S  93.8  0.3   0:41.60 python2.7   
 1800 USER     20   0 1251136 113176  64712 S   6.2  0.9   6:27.81 compiz      
    1 root      20   0  119960   6064   3932 S   0.0  0.0   0:03.00 systemd     
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kthreadd    
    3 root      20   0       0      0      0 S   0.0  0.0   0:00.21 ksoftirqd/0 
    5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:+ 
    7 root      20   0       0      0      0 S   0.0  0.0   0:09.43 rcu_sched   
    8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh      
    9 root      rt   0       0      0      0 S   0.0  0.0   0:00.09 migration/0 
   10 root      rt   0       0      0      0 S   0.0  0.0   0:00.04 watchdog/0  
   11 root      rt   0       0      0      0 S   0.0  0.0   0:00.04 watchdog/1  
   12 root      rt   0       0      0      0 S   0.0  0.0   0:00.07 migration/1 
   13 root      20   0       0      0      0 S   0.0  0.0   0:00.20 ksoftirqd/1 
   15 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/1:+ 
   16 root      rt   0       0      0      0 S   0.0  0.0   0:00.04 watchdog/2  
   17 root      rt   0       0      0      0 S   0.0  0.0   0:00.08 migration/2 
   18 root      20   0       0      0      0 S   0.0  0.0   0:00.24 ksoftirqd/2 

Vous pouvez voir que Python occupe le processeur pendant un temps terrible.

L'environnement est le suivant. CPU:Core i3 4005u Memory:12G OS:Ubuntu 16.04(LTS)

Enquête / cause

Apparemment, pygame.init () fait quelque chose de mal. D'après la documentation pygame, pygame.init () semble être une fonction qui initialise plusieurs modules à la fois. Seul le module spécifié par pygame. [Nom du module] .init () peut être initialisé. Ainsi, lorsque j'ai initialisé les modules individuellement, l'utilisation du processeur était de 100% immédiatement après l'appel de pygame.base.init (). Est-ce la cause?

Contre-mesures

Au lieu d'écrire pygame.init (), s'il y a un module qui doit être initialisé, il sera initialisé avec pygame. [Nom du module] .init (). Heureusement, pygame.base ne semble pas causer d'erreur sans initialisation, donc je l'ai résolu pour le moment.

Recommended Posts

Lors de l'utilisation de pygame sur Ubuntu 16.04, l'utilisation du processeur est de 100%
Erreur autour de l'interface graphique lors de l'utilisation de PyQt5 sur Ubuntu (WSL2)
Installez Caffe sur Ubuntu 14.04 (mode CPU)
Utilisation d'une console série sur Ubuntu 20.04
Exécutez Yocto sur Ubuntu en utilisant QEMU.
[Super Basic] Manuel de procédure de commande Docker lors de l'utilisation d'Ubuntu sur Mac
Solution lorsque la sortie audio HDMI n'est pas possible sur Ubuntu 20.04.1 LTS
Construire un environnement Python sur Ubuntu (lorsque pip n'était pas la valeur par défaut)
Lorsque la cible est Ubuntu 16.04 dans Ansible
Avertissement lors de l'utilisation de TensorFlow sur Mac
Une histoire addictive lors de l'utilisation de tensorflow sur Android
Construire l'environnement Python3.5 + matplotlib sur Ubuntu 12 en utilisant Anaconda
Développement Python sur Ubuntu sur AWS EC2 (à l'aide de Jupyter Lab)
Remarques sur l'utilisation de TensorFlow sur Bash sur Ubuntu sous Windows
Shebang sur Ubuntu 20.04
Précautions lors de l'utilisation de sqlite3 de macOS Sierra (10.12) avec le multitraitement
Configurer un serveur de fichiers sur Ubuntu 20.04 à l'aide de Samba
J'ai un UnicodeDecodeError lorsque je pip installé sur ubuntu
Vérifiez types_map lors de l'utilisation de mimetypes avec AWS Lambda (Python)
Solution si heroku plante lors de l'utilisation de sélénium
Obtenez la source html lorsque javascript est activé à l'aide de curl
Notes minimales lors de l'utilisation de Python sur Mac (édition pyenv)
Suspendre l'arrêt sous Linux lorsque la mise en veille n'est pas possible
Notes minimales lors de l'utilisation de Python sur Mac (édition Homebrew)