[PYTHON] Bei Verwendung von Pygame unter Ubuntu 16.04 beträgt die CPU-Auslastung 100%

Symptome

Die Verwendung von Pygame unter Ubuntu 16.04 führt zu einer 100% igen CPU-Auslastung.

main.py


import time
import pygame

pygame.init()

while True:
    time.sleep(1)

Es ist ein Code, der nichts tut, aber wenn Sie ihn oben überprüfen

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 

Sie können sehen, dass Python die CPU für eine schreckliche Zeit belegt.

Die Umgebung ist wie folgt. CPU:Core i3 4005u Memory:12G OS:Ubuntu 16.04(LTS)

Untersuchung / Ursache

Anscheinend macht pygame.init () etwas falsch. Laut der Pygame-Dokumentation scheint pygame.init () eine Funktion zu sein, die mehrere Module gleichzeitig initialisiert. Es kann nur das durch pygame. [Modulname] .init () angegebene Modul initialisiert werden. Als ich die Module einzeln initialisierte, war die CPU-Auslastung unmittelbar nach dem Aufruf von pygame.base.init () 100%. Ist das die Ursache?

Gegenmaßnahmen

Anstatt pygame.init () zu schreiben, wird ein Modul, das initialisiert werden muss, mit pygame initialisiert. [Modulname] .init (). Glücklicherweise scheint pygame.base ohne Initialisierung keinen Fehler zu verursachen, daher habe ich ihn vorerst behoben.

Recommended Posts

Bei Verwendung von Pygame unter Ubuntu 16.04 beträgt die CPU-Auslastung 100%
Fehler in der GUI bei Verwendung von PyQt5 unter Ubuntu (WSL2)
Installieren Sie Caffe unter Ubuntu 14.04 (CPU-Modus)
Verwenden einer seriellen Konsole unter Ubuntu 20.04
Führen Sie Yocto unter Ubuntu mit QEMU aus.
[Super Basic] Docker-Befehlshandbuch Bei Verwendung von Ubuntu unter Mac
Lösung, wenn unter Ubuntu 20.04.1 LTS keine HDMI-Audioausgabe möglich ist
Erstellen einer Python-Umgebung unter Ubuntu (wenn pip nicht die Standardeinstellung war)
Wenn das Ziel Ubuntu 16.04 in Ansible ist
Warnung bei Verwendung von TensorFlow auf einem Mac
Eine süchtig machende Geschichte bei der Verwendung von Tensorflow unter Android
Erstellen Sie die Python3.5 + matplotlib-Umgebung unter Ubuntu 12 mit Anaconda
Python-Entwicklung unter Ubuntu unter AWS EC2 (mit Jupyter Lab)
Hinweise zur Verwendung von TensorFlow unter Bash unter Ubuntu unter Windows
Shebang auf Ubuntu 20.04
Vorsichtsmaßnahmen bei Verwendung von sqlite3 von macOS Sierra (10.12) mit Multiprocessing
Richten Sie mit Samba einen Dateiserver unter Ubuntu 20.04 ein
Ich habe einen UnicodeDecodeError erhalten, als ich auf Ubuntu Pip installiert habe
Überprüfen Sie types_map, wenn Sie Mimetypen mit AWS Lambda (Python) verwenden.
Lösung, wenn Heroku bei Verwendung von Selen abstürzt
Holen Sie sich die HTML-Quelle, wenn Javascript mit Curl aktiviert ist
Mindestnotizen bei Verwendung von Python auf Mac (pyenv edition)
Unter Linux herunterfahren Wenn der Schlaf nicht möglich ist
Mindestnotizen bei Verwendung von Python auf Mac (Homebrew Edition)