首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么引用(python) pyglet.image中的类会在Windows上造成沉重的cpu负载?

为什么引用(python) pyglet.image中的类会在Windows上造成沉重的cpu负载?
EN

Stack Overflow用户
提问于 2015-11-20 18:30:48
回答 1查看 248关注 0票数 7

我正在使用python的pyglet模块(Windows上的python 3)。当我引用pyglet.image中的任何类时,python的CPU使用率会跳起来,直到退出python才会下降。例如:

代码语言:javascript
运行
复制
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
C:\Anaconda3>python.exe
Python 3.4.3 |Anaconda 2.3.0 (64-bit)| (default, Mar  6 2015, 12:06:10) [MSC v.1
600 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyglet #No problem!
>>> pyglet.image.ImageData #Heavy CPU load until I exit python
<class 'pyglet.image.ImageData'>

这是预期的行为吗?为什么提到这个类(甚至没有实例化它)会导致如此高的CPU负载?

我测试过的系统:

  • Windows 7桌面安装Anaconda python 3.4.3和pyglet通过'pip install pyglet‘安装: CPU使用率高(我的问题)
  • 与Anacondapython3.4.3相同的Win7桌面,但是pyglet通过'pip hg+https://bitbucket.org/pyglet/pyglet‘安装:高CPU使用率。
  • 与python3.5相同的Win7桌面通过‘’安装从python.org和pyglet中安装:高CPU使用率。
  • 带python 3.4.2和pyglet1.2.1的Fedora 22联想笔记本电脑通过dnf安装:没问题。
  • Windows10HP笔记本电脑,Anacondapython3.4,pyglet通过‘’安装:没问题。

这有可能是硬件依赖的吗?

EN

回答 1

Stack Overflow用户

发布于 2015-11-28 15:51:58

它可能与模块上的下列行有关

代码语言:javascript
运行
复制
# Initialise default codecs
from pyglet.image import codecs as _codecs
_codecs.add_default_image_codecs()

加载默认编解码器的顺序是:

代码语言:javascript
运行
复制
# Add the codecs we know about.  These should be listed in order of
# preference.  This is called automatically by pyglet.image.

# Compressed texture in DDS format
try:
    from pyglet.image.codecs import dds
    add_encoders(dds)
    add_decoders(dds)
except ImportError:
    pass

# Mac OS X default: QuickTime
(...)

# Windows XP default: GDI+
(...)

# Linux default: GdkPixbuf 2.0
(...)

# Fallback: PIL
(...)

# Fallback: PNG loader (slow)
(...)

# Fallback: BMP loader (slow)
(...)

由于延迟加载,pyglet.image只在引用某些内容时才被加载,而且您可能正在使用缓慢的回退之一。如果是这样的话,也许您可以尝试安装/卸载编解码器,这样您就可以一次使用一个,并确定是否确实存在于编解码器中的问题。发布这些编解码器的版本可能有助于复制问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33833646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档