我有一台 Compaq V5205,配备 1.46g 赛扬 CPU。我对它的性能比较满意,因为我大部分时间只是查看电子邮件和浏览互联网。但是,有时系统会变得非常慢。我启动了系统监视器,发现 phyton 占用了 100% 的 CPU!就在我看到发生了什么事情时,Python 停止了,所以我没有得到更多信息。
答案1
长答案
这常规 Python 常见问题解答状态:
Python 是一种解释型、交互式、面向对象的编程语言。它集成了模块、异常、动态类型、非常高级的动态数据类型和类。Python 结合了非凡的功能和非常清晰的语法。它具有许多系统调用和库以及各种窗口系统的接口,并且可以使用 C 或 C++ 进行扩展。它还可以用作需要可编程接口的应用程序的扩展语言。最后,Python 是可移植的:它可以在许多 Unix 变体、Mac 以及 Windows 2000 及更高版本上运行。
在此背景下,有 3 个重要方面:(粗体)
- 一个解释型语言是一种编程语言,其大多数实现都直接执行指令,而无需事先将程序编译成机器语言指令。
- 交互式编程是在程序已经处于活动状态时编写程序部分的过程。这侧重于将程序文本作为正在运行的进程的主要界面,而不是交互式应用程序,其中程序是在开发周期中设计的,之后使用(通常由所谓的“用户”,与“开发人员”不同)。因此,在这里,编写程序的活动成为程序本身的一部分。
- 面向对象编程(OOP) 是一种基于“对象”概念的编程范式,对象可能包含数据(以字段的形式,通常称为属性)和代码(以过程的形式,通常称为方法)。对象的一个特点是,对象的过程可以访问并经常修改与其关联的对象的数据字段(对象具有“this”或“self”的概念)。在 OOP 中,计算机程序的设计方式是将它们与彼此交互的对象组合在一起。OOP 语言种类繁多,但最流行的是基于类的语言,这意味着对象是类的实例,这通常还决定了它们的类型。
为什么这很重要
无论是 Windows 环境还是桌面环境,Linux 的主要操作方法都是终端,通常称为 TTY。由于 TTY 的主要输入方法是键盘,因此脚本成为自动化操作的主要方法,尽管 Linux 上有很多原生脚本工具,例如Awk/gAwk和塞德其中有些像 Awk 和 Sed,对于脚本初学者来说有时很有挑战性,甚至对于专家来说语法也很有挑战性。
由于 Python 是一种脚本语言,因此它可以代替我提到的那些繁琐的工具。OOP 部分很方便,因为我可以使用该语言的方法,而不必一遍又一遍地编写 sed 或 awk 代码片段。这就是大多数现代 Linux 为简化开发人员的开发和脚本编写所做的工作。您的一个程序正在使用一些 Python 脚本,并且挂起了。
简短答案
知道 python 是一种脚本语言意味着 @mikewhatever 和我正确地告诉您,您的系统正在运行一个调用 python 脚本的程序,并且该脚本需要很长时间才能执行或挂起。 、 和系统监视器等工具top
将htop
告诉您正在运行的脚本的名称,以及可能调用该脚本的父程序。
答案2
不幸的是,我目前没有能力在这个 Stack Exchange 网站上发表评论,但我会尝试让这个答案比评论更完整。(我建议接受 eyoung100 的详细答案。)
Python 是一种脚本语言,可用于许多程序。当您在进程列表中看到“python”时,它实际上是 python 解释器正在运行另一个程序,就像运行 .JAR 文件时会显示为“java”一样。
我注意到最值得注意的在 Python 上运行的程序是 playonlinux。每当我启动 playonlinux 时,“playonlinux”和“python”都会出现在系统监视器中,但它们占用的 CPU 并不多。大多数其他依赖 Python 的程序可能也会出现同样的情况,因此您可能需要检查您的任何程序是否可能使用该语言。