Table des matières
回复内容:
Maison développement back-end Tutoriel Python 为什么Python程序不怎么占用CPU资源?

为什么Python程序不怎么占用CPU资源?

Jun 06, 2016 pm 04:23 PM
cpu cython python

只是个人感觉,写一些computationally intense的代码,C++的版本很快,而Python的版本会慢得多。但是比较奇怪的一点在于,Python版本一般不会占用全部CPU资源,而C++的就是100%,有没有什么办法让Python code更有效地调用CPU资源?(在Python框架内,不考虑Cython或者Python-C API)

回复内容:

正确的解决方法就是,纯计算的问题就应该用C++来写,然后你好好学习如何将任意两种编程语言互相打通,以后就再也不会思考这个无聊的问题了。 这是我用 matplotlib 画最近全部股票走势时候的任务截图。

为什么Python程序不怎么占用CPU资源? python要想占满cpu,不用c扩展的话,就只能搞多进程了。对于需要线程间大量交换数据、适合共享内存的那种计算密集型问题。。。还是放弃python比较明智。当然,很多data-parallel型的数值计算问题,没必要放弃python写c扩展,可以考虑numba/theano/numexpr等优化工具。 看症状,题主最大的可能是C++版本可能在内部某处调用了多线程,Python在有GIL的情况下,最多也就只能占满一核,所以才会有怎么跑不满的疑问

上面的答案都说的很好了,要占满内核请上cython,捎上nogil:
Search Results · GitHub Python本来就是用来做Casual Work的。要不是大多数CLI Shell的编程语法不够现代,Python还不如那些Shell呢(人家好歹不会搞个版本大分裂) 我一不小心看成了程序员怎么不吃cpu_(:_」∠)_对不起问主 C++占用了100%CPU,你确定程序写对了? 多用numpy… python有一个全局锁,一个pyhton程序无论何时只能占用一个cpu,当然,在这个cpu上,你是可以跑满100%的,对于现在的多cpu系统,想要充分利用cpu资源,你只能选择使用多进程技术(多线程也不行哦)。提速的方法有很多,比如编写c扩张,使用pypy编译器,还有优化代码结构等等。 为什么不用multiprocessing么?
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'interprète Python peut-il être supprimé dans le système Linux? L'interprète Python peut-il être supprimé dans le système Linux? Apr 02, 2025 am 07:00 AM

En ce qui concerne le problème de la suppression de l'interpréteur Python qui est livré avec des systèmes Linux, de nombreuses distributions Linux préinstalleront l'interpréteur Python lors de l'installation, et il n'utilise pas le gestionnaire de packages ...

Comment résoudre le problème de la détection de type pylance des décorateurs personnalisés dans Python? Comment résoudre le problème de la détection de type pylance des décorateurs personnalisés dans Python? Apr 02, 2025 am 06:42 AM

Solution de problème de détection de type pylance Lorsque vous utilisez un décorateur personnalisé dans la programmation Python, le décorateur est un outil puissant qui peut être utilisé pour ajouter des lignes ...

Python 3.6 Chargement du fichier de cornichon MODULENOTFOUNDERROR: Que dois-je faire si je charge le fichier de cornichon '__builtin__'? Python 3.6 Chargement du fichier de cornichon MODULENOTFOUNDERROR: Que dois-je faire si je charge le fichier de cornichon '__builtin__'? Apr 02, 2025 am 06:27 AM

Chargement du fichier de cornichon dans Python 3.6 Erreur d'environnement: modulenotFounonError: NomoduLenamed ...

FastAPI et AIOHTTP partagent-ils la même boucle d'événements mondiaux? FastAPI et AIOHTTP partagent-ils la même boucle d'événements mondiaux? Apr 02, 2025 am 06:12 AM

Problèmes de compatibilité entre les bibliothèques asynchrones Python dans Python, la programmation asynchrone est devenue le processus de concurrence élevée et d'E / S ...

Que dois-je faire si le module '__builtin__' n'est pas trouvé lors du chargement du fichier de cornichon dans Python 3.6? Que dois-je faire si le module '__builtin__' n'est pas trouvé lors du chargement du fichier de cornichon dans Python 3.6? Apr 02, 2025 am 07:12 AM

Chargement des fichiers de cornichons dans Python 3.6 Rapport de l'environnement Erreur: modulenotFoundError: NomoduLenamed ...

Comment s'assurer que le processus de l'enfant se termine également après avoir tué le processus parent via le signal dans Python? Comment s'assurer que le processus de l'enfant se termine également après avoir tué le processus parent via le signal dans Python? Apr 02, 2025 am 06:39 AM

Le problème et la solution du processus enfant continuent d'exécuter lors de l'utilisation de signaux pour tuer le processus parent. Dans la programmation Python, après avoir tué le processus parent à travers des signaux, le processus de l'enfant est toujours ...

See all articles