Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-Pygame中的突然减速_Python_Python 2.7_Memory_Pygame - Fatal编程技术网

Python-Pygame中的突然减速

Python-Pygame中的突然减速,python,python-2.7,memory,pygame,Python,Python 2.7,Memory,Pygame,我正在使用Pygame用Python编写一个3D引擎。对于前300帧左右,渲染140个多边形大约需要0.004到0.006秒。但在那之后,完成同样的任务平均需要0.020秒。这对我来说很重要,因为这是一个小规模的测试,即使50 FPS是不错的,它也不能维持在1000个多边形,例如 我已经对我的代码做了很多简化。我还做了一些稍微深入的分析,似乎增加的时间或多或少是成比例分布的,这表明问题并非特定于一段代码 我假设这个问题与内存使用有关,但我不知道为什么会发生这个问题。是什么具体问题导致了这种情况的

我正在使用Pygame用Python编写一个3D引擎。对于前300帧左右,渲染140个多边形大约需要0.004到0.006秒。但在那之后,完成同样的任务平均需要0.020秒。这对我来说很重要,因为这是一个小规模的测试,即使50 FPS是不错的,它也不能维持在1000个多边形,例如

我已经对我的代码做了很多简化。我还做了一些稍微深入的分析,似乎增加的时间或多或少是成比例分布的,这表明问题并非特定于一段代码


我假设这个问题与内存使用有关,但我不知道为什么会发生这个问题。是什么具体问题导致了这种情况的发生,我如何优化我的代码来修复它,以及一些更通用的实践?因为我的代码很长,所以已经发布了。

虽然我不能准确回答您的问题,但我会使用任务管理器,观看“python”(或“pygame”,具体取决于您的操作系统)进程,并查看它的内存消耗。如果这就是问题所在,您可以检查哪些变量在一段时间后不需要,然后可以清除这些变量

编辑:某些CPU具有数据丢失预防系统。我的意思是:
如果应用程序X占用40%的CPU(不必那么高)。经过一定时间后,CPU将限制应用程序X允许使用的CPU数量。这可能会导致像这样的事情减速。这在(大多数)游戏中不会发生,因为它们的设置是为了告诉CPU预期会有那么大的压力。

我的程序本质上是迭代的。没有可以删除的变量。我还再次运行了我的程序,查看内存。它在很长一段时间内保持不变(17.1MB),几分钟后只是略微增加(到17.3MB)。性能也不稳定,因为计算机在不同的时间有不同的进程。我想我做了很多修改,意外地修复了这个问题。这些MOD主要用于减少创建的新对象。谢谢你的建议。事实上,这个问题在更大范围内仍然存在,但是内存使用率没有显著增加。@bcdan奇怪。CPU使用率如何?当它正常工作时,CPU的使用率为25-35%。当它变慢时,CPU就会停止工作。您认为您的CPU是否有一个功能,可以在一段时间后降低性能?