【问题标题】:Python Shell High CPU UsagePython Shell 高 CPU 使用率
【发布时间】:2015-09-13 15:40:40
【问题描述】:

我在一台装有 Windows XP 的旧笔记本电脑 (Pentium 4) 上安装了 Python 3.4.3。

似乎在打开 Python shell 的一半时间里,CPU 使用率高达 12-13%。

它是 Python shell 本身,而不是它可能启动的任何 Python 脚本,也不是 IDLE 文本编辑器。

我还没有弄清楚什么时候上涨和什么时候不上涨的模式。当我开始调试基于 tkinter 的脚本时,CPU 使用率实际上为零。

如果有任何区别,可以通过单击 IDLE 快捷方式打开 shell 窗口。

当我在 IDLE 编辑器中工作时,我已经关闭了 shell,直到我需要它为止。

知道为什么会发生这种情况以及可以补救吗?

【问题讨论】:

  • 您是否从命令提示符/终端运行 shell?如果没有,您这样做时是否看到相同的峰值?
  • 我刚刚编辑了我的帖子。通过单击 IDLE 快捷方式启动 shell。我没有尝试从命令提示符运行它,我现在无法访问机器。
  • Idle 快捷方式打开的 shell 窗口是 Idle 的基于 tkinter 的 shell,连接到第二个 Python 进程。在 Windows 上,查看“任务管理器性能”选项卡,当我打开 3.5.0 的 Idle 时,我看到一个临时峰值。
  • 我在两台运行 Windows XP 的不同计算机上观察到它。这绝对不是单一的临时峰值,而是稳定的 CPU 使用率。当 shell 在终端中运行时,我没有观察到这种高 CPU 使用率,只有基于 IDLE 的 shell。这很不幸,因为我更喜欢 IDLE shell,而不是标准的 Windows 命令提示符。
  • 使用CPU的进程名是pythonw.exe

标签: python shell python-idle


【解决方案1】:

IDLE 通常在两个进程中运行:一个运行图形用户界面,一个运行您的代码。进程当前通过套接字进行通信。每个进程每秒轮询套接字 20 次以获取输入。如果用户正在使用 tkinter 但未运行 mainloop,用户进程也会调用 tk update。

我有一个 6 核 Pentium,具有千兆字节内存和 SSD 主驱动器,运行 64 位 Win10。我目前正在运行 5 个 IDLE shell 和 5 个相应的用户进程:安装了 2.7、3.4、3.5、3.6 和 3.6 的开发版本。任务管理器大多显示为 0%。一个偶尔会达到 0.7%。在单核机器上,这将是一个更高的百分比。这似乎在 3.4 IDLE 中更常见。

我只能推测内存更少、内存更慢、CPU 缓存空间更少、磁盘交换更慢、指令更少的旧单核笔记本电脑芯片以及系统调用更少的旧操作系统的某种组合会导致差异。

您的笔记本电脑有最大内存吗?

在使用 IDLE 时,12% 是一个实际问题的频率? (我想这部分取决于电池与电源线的时间。)

【讨论】:

  • 我在两台笔记本电脑上观察到这一点 - 一台是具有 2GB 内存的 Pentium 4(已满),另一台是具有 1GB 内存(也已满)的 Pentium 3。据我所知,12% 的使用率大约是 35-40% 的时间。如果我关闭 IDLE shell,它会变为零,但保持 IDLE 编辑器打开。也许我需要尝试一个更新的版本,看看它是否有帮助。我不使用电池操作它们。我会看看我是否能想出一系列的步骤来重现这个问题。谢谢。
猜你喜欢
  • 2021-12-09
  • 2014-07-16
  • 2014-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多