Как измерить количество используемой методом памяти Python?

Есть метод:

def method(g):
    x = []
    for i in range(g):
        x.append(i)
    return x

Нужно измерить количество потребляемой памяти.
Пытаюсь измерить с помощью memory_profiler, но его PyCharm почему-то не видит (from memory_profiler import memory_usage написал). Может есть какие-то другие способы?
Так понял, что memory_profiler работает только на конде. Сейчас разбираюсь как с virtualenv объединить.
Конда не нужна.
Теперь вопрос, как получить именно используемую память?
Память вычисляется с помощью memory_profiler.memory_usage(), но почему-то не работает, если писать так:

import memory_profiler


def method(g):
    x = []
    for i in range(g):
        x.append(i)
    return x


y = []
for j in range(len(10)):
    y.append(memory_profiler.memory_usage(method(10000)))

Ответы (2 шт):

Автор решения: kfcgenius

Измерить потребляемую память можно с помощью memory_profiler. Нужно в терминале PyCharm (если работаете в PyCharm) написать pip install memory_profiler.

→ Ссылка
Автор решения: Dmitry

Напишу ответ, в вашем случае воспользоваться memory_profiler в venv.

Установить (macOS):

python3 -m venv env
source env/bin/activate
pip3 install -U memory_profiler

Установить (Windows):

py -m venv env
env/Scripts/activate
pip install -U memory_profiler

Первое, необходимо функцию саму задекорировать в @profile.

А затем вызывать ее в стандартной конструкции

if __name__ == '__main__':
    method(10000)

То есть весь код будет выглядеть вот так:

@profile
def method(g):
    x = []
    for i in range(g):
        x.append(i)
    return x

if __name__ == '__main__':
    method(10000)

Теперь запусти на исполнение и посмотрим на результат

python3 -m memory_profiler func.py

Результат:

Filename: func.py

Line #    Mem usage    Increment  Occurrences   Line Contents
=============================================================
     2   18.750 MiB   18.750 MiB           1   @profile
     3                                         def method(g):
     4   18.750 MiB    0.000 MiB           1       x = []
     5   19.203 MiB    0.266 MiB       10001       for i in range(g):
     6   19.203 MiB    0.188 MiB       10000           x.append(i)
     7   19.219 MiB    0.016 MiB           1       return x

Если же, вы хотите использовать в самом коде, то можно вот так

def method(g):
    x = []
    for i in range(g):
        x.append(i)
    return x

from memory_profiler import memory_usage
print(memory_usage((method, (10000,))))

Результат:

[19.28125, 19.296875, 19.296875]

Все примеры использования взяты из доументации

→ Ссылка