我正在使用Python v2.7和Requests HTTP库。我正在使用Windows 7操作系统。
我不明白为什么以下代码在执行时会消耗越来越多的内存?我使用任务管理器观察了内存消耗情况。如果有人能指出可能的原因并说明如何避免,那就太好了。此外,如果有人可以在自己的系统上测试并确认这不仅仅是我的问题或我的系统面临这个问题,那就太好了。:)尽管内存消耗量增加了一点,但我认为在没有更多可用内存的情况下,我的应用程序肯定会崩溃。 代码:
下面详细介绍了这个简单问题的原因。我在urllib2模块方面也遇到了类似的问题。因此,我考虑使用Requests HTTP库。但是,内存消耗方面的问题仍然存在。
现实场景:我的真实应用程序是用Python和wxPython构建的。wxPython代码不会引起此问题。连接到URL以从服务器获取一些值的Python代码会导致问题。为了保持这些值的更新,每2秒获取一次这些值,然后在GUI上显示这些值。上面显示的代码是我的原始代码的一个示例。此外,在以上代码示例中,只有一个连接到URL的实例。
比较:为什么以下代码没有与上面的代码相同的问题:
我不明白为什么以下代码在执行时会消耗越来越多的内存?我使用任务管理器观察了内存消耗情况。如果有人能指出可能的原因并说明如何避免,那就太好了。此外,如果有人可以在自己的系统上测试并确认这不仅仅是我的问题或我的系统面临这个问题,那就太好了。:)尽管内存消耗量增加了一点,但我认为在没有更多可用内存的情况下,我的应用程序肯定会崩溃。 代码:
import requests
def getName():
url = 'https://stackoverflow.com/users/2382792/pss'
r = requests.get(url)
print r
while True:
getName()
下面详细介绍了这个简单问题的原因。我在urllib2模块方面也遇到了类似的问题。因此,我考虑使用Requests HTTP库。但是,内存消耗方面的问题仍然存在。
现实场景:我的真实应用程序是用Python和wxPython构建的。wxPython代码不会引起此问题。连接到URL以从服务器获取一些值的Python代码会导致问题。为了保持这些值的更新,每2秒获取一次这些值,然后在GUI上显示这些值。上面显示的代码是我的原始代码的一个示例。此外,在以上代码示例中,只有一个连接到URL的实例。
比较:为什么以下代码没有与上面的代码相同的问题:
import random
def getValue():
value = random.randrange(0,11)
print value
while True:
getValue()
更新:我测试了代码片段半个小时。我最终得出结论:内存消耗在开始时会增加,后来会呈现增加和减少的状态。最终,内存消耗将保持在一个范围内。这是从Windows 8操作系统的processExplorer创建的图表。中间的图表是关于内存的(右键单击图像并单击“查看”以清晰地查看):![pexplorer](https://istack.dev59.com/jOH28.webp)
感谢您的时间!