Понимание увеличения потребления памяти в Python с использованием библиотеки HTTP запросов.

Я использую Python v2.7 иЗапрашивает HTTP-библиотеку, Я использую ОС Windows 7.

Мне не удалось понять, почему следующий код потребляет все больше и больше памяти при выполнении? Я наблюдал потребление памяти с помощью диспетчера задач. Было бы замечательно, если бы кто-то мог указать, что может быть возможной причиной и как ее избежать? Также было бы здорово, если бы кто-нибудь мог проверить это на своей системе и подтвердить, что не только я или моя система сталкиваются с этой проблемой. :) Хотя потребление памяти увеличивается с небольшим количеством, я думаю, что в какой-то момент мое приложение наверняка вылетит, когда не останется свободной памяти.

Код:

import requests
def getName():
    url = 'https://stackoverflow.com/users/2382792/pss'
    r = requests.get(url)
    print r

while True:
    getName()

Причина этого простого вопроса подробно описана ниже. Также у меня есть похожая проблема сМодуль urllib2 тоже. Поэтому я подумал об использовании библиотеки HTTP запросов. Но та же проблема с потреблением памяти сохраняется.

Сценарий реального мира: Мое реальное приложение построено на Python и wxPython. Код wxPython не вызывает этой проблемы. Код Python, который подключается к URL-адресам для получения некоторых значений с сервера, вызывает проблемы. Для обновления значений значения выбираются через каждые 2 секунды. Эти извлеченные значения затем отображаются в графическом интерфейсе. Код, показанный выше, является примером моего оригинального кода. Более того, в приведенном выше примере кода есть только один случай подключения к URL.In my real world app I have 9-10 threads those are doing this fetching stuff by connecting to different URLs! Which means in this case the memory consumption increases more rapidly as compared to the above sample code. Надеюсь, теперь стало яснее, насколько серьезна эта проблема. Кроме того, просто для пояснения, я не отказываюсь ни от какого веб-сайта.

сравнение: Почему следующий код не имеет той же проблемы, что и код выше:

import random
def getValue():
    value = random.randrange(0,11)
    print value
while True:
    getValue()

Обновить: Я тестировал фрагмент кода в течение получаса. Я наконец-то пришел к выводу, что вначале потребление памяти увеличивается, а затем оно приходит в состояние, где оно уменьшается, а также увеличивается. Наконец, потребление памяти останется в диапазоне. Вот график, созданный изProcessExplorer на ОС Windows 8. Средний - для памяти (щелкните правой кнопкой мыши на изображении и нажмите на просмотр, чтобы увидеть его четко):

Спасибо за ваше время!

Ответы на вопрос(2)

Ваш ответ на вопрос