Table of Contents
¿La PC va lenta?
Aquí hay algunos métodos fáciles de usar que pueden ayudarlo a resolver el problema exacto del multiprocesamiento de Python.
El punto principal depende de lo que quieras hacer. Tus opciones:
Prioridades reducidas de algunos procesos
¿El multiprocesamiento de Python utiliza varios núcleos?
Python proporciona un paquete de multiprocesamiento real que ayuda a crear procesos a partir del proceso número uno, que puede controlar varias veces. Muchos núcleos en paralelo y, en consecuencia, de forma independiente.
Ejecutará subprocesos buen
. Entonces, incluso si todavía consumen el 100% de la CPU cuando ejecutan otros blogs, actualmente el sistema operativo anula el tipo relacionado con otras aplicaciones. Si desea que se ejecuten cálculos serios en el entorno de su computadora portátil y normalmente le preocupa que el ventilador de la CPU haga ejercicio todo el tiempo, establecer una comprensión en un buen psutils
podría ser su solución. El script se considera como un script de prueba que se ejecuta lo suficientemente prolongado en todos los núcleos para que los usuarios puedan ver cómo seguirá funcionando el dispositivo.
Importar
del grupo de valores multiprocesopsutil cpu_countImportar matemáticasImportar sistema operativoprotección f(i): sigue viniendo atrás math.sqrt(i)establecer limit_cpu(): "cada uno ha llegado a ser llamado el comienzo del trabajo de uno" p implica que psutil.Process(os.getpid()) # Se instaló con éxito la prioridad más alta, Windows es bajo, sin embargo, es Unix, ps use.nice (19) p.nice(psutil.BAJO_NORMAL_PRIORIDAD_CLASE)si __nombre__ == '__principal__': # ZapEncontrar las técnicas "Número de núcleos creados" pool = pool(ninguno, limit_cpu) solo para p por pool.imap(f, range(10**8)): llegar
El truco es que limit_cpu
simplemente se ejecuta al comienzo de cada curso (consulte el argumento initializer
en su documento válido). Mientras que Unix tiene niveles de -16 (prioridad más alta) a 20 (prioridad más baja), Windows tiene varias extensiones diferentes para determinar las prioridades. BELOW_NORMAL_PRIORITY_CLASS
posiblemente se adapte mejor a sus necesidades, pero también hay IDLE_PRIORITY_CLASS
que se jacta de que Windows solo debe iniciarse y se procesará cuando el software esté realmente en uso.
Puede ver casi todas las prioridades yendo a la alerta de propiedades en el administrador de tareas y haciendo clic derecho en un proceso:
Reduzca la cantidad de procesos en ejecución
Si bien rechazó esta opción, la situación aún podría ser un camino razonable a seguir: digamos que limita la comprensión de los subprocesos a la mitad de los núcleos del dispositivo con pool = Pool (max(cpu_count()//2, 1) )
En ambos sistemas operativos, se puede ver fácilmente que el proceso de fusión de núcleos, aunque equilibrado, un número no tan grande de núcleos todavía tiene un porcentaje real más alto que otros.
Dormir
En método, si desea asegurarse de que sus procesos creados por un kernel en particular nunca consuman el 100% de su potencial (por ejemplo, si realmente está buscando detener el ventilador de la PC causado por el giro), puede ponerlos con el sueño durante el desarrollo. función:
¿Cómo puedo limitar el uso de la CPU usando Python?
Limite el uso de CPU y memoria Los recursos como la CPU, la memoria utilizada en nuestro programa Python deben monitorearse a través de la biblioteca de recursos. Para obtener el tiempo de CPU (en segundos) que normalmente puede usar un proceso en particular, algunos de nosotros tendemos a usar un recurso. solución getrlimit(). Devuelve suave sobre extremadamente y límite de recursos. Ellos