Python потребление памяти: как очистить память от процесса? - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть код для запроса SQL с использованием pyodb c:

    import pyodbc
    import gc

    with pyodbc.connect(connection_string) as conn:
        cursor = conn.cursor()
        tmp = list(cursor.execute(query))
        # attempt to clear cursor memory
        cursor.close()
        cursor = None
        gc.collect()

Проблема, с которой я сталкиваюсь, заключается в том, что я не могу очистить память от этого процесса:

enter image description here

Даже когда я закрываю блокнот jupyter, из которого запускаю скрипт, он зависает в памяти. Я могу щелкнуть правой кнопкой мыши и нажать «Завершить задачу», но мне нужно, чтобы она была автоматизирована (и этот грубый метод требует перезагрузки компьютера).

Кроме того, мне пришлось вручную настроить параметры памяти, установив «max memory» за экземпляр "(до 2500 МБ), это сильно замедляет время запроса, и в идеале я мог бы иметь бесконечную память, но очищать память процесса после каждого SQL запроса.

...