Numpy.load (), кажется, использует двойную память массива на пикеPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Numpy.load (), кажется, использует двойную память массива на пике

Сообщение Anonymous »

Я думал, что numpy.load () записывается непосредственно в память данных массива. Я бы ожидал пиковую память 2 ГБ для функции загрузки. Я также мог себе представить, что 4 ГБ в пике, используемом в качестве массива, может быть загружена в буфер и записанный в память данных.

Тем не менее, время в профилировании кажется странным. После загрузки программы следует подождать секунду и распечатать время. Тем не менее, размер памяти увеличивается после этой секунды?

Код: Выделить всё

import time
from datetime import datetime as dt

import memray
import numpy as np

def main():
time.sleep(1)
print(dt.now())
m_ = np.load(
os.path.join(os.path.expanduser('~'), 'test_data/max_compression_chunk.npy'),
mmap_mode=None,
)
print(dt.now())
time.sleep(1)
print(dt.now())

if __name__ == "__main__":
with memray.Tracker("memray_test.bin", memory_interval_ms=0.1, follow_fork=True, native_traces=True):
main()
Прикреплено также результаты MProf и Memray:
Изображение


Edit 2
Interestingly, it seems that numpy.fromfile does indeed work better.
(The code is the same as above, just, using fromfile instead of load.)


2 "src =" https://i.sstatic.net/3gm9azsl.png "/>
Выход MPROF - это то, что я ожидал (а также для функции np.load). Однако, по -видимому, существует несоответствие между выходом мемрай и выходом MPLOT. < /P>

edit 3 < /strong> < /p>
После повторного установления моей среды и создания новой массивы тестов, кажется, что зависит от того, что я могу ожидать. усилие! Особенно, если пиковая память, как ожидается, будет 4 ГБ (вдвое больше размера массива)?>

Подробнее здесь: https://stackoverflow.com/questions/795 ... ay-at-peak
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Numpy.load (), кажется, использует двойную память массива на пике
    Anonymous » » в форуме Python
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Numpy.load (), кажется, использует двойную память массива на пике
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Как заставить Isolation Forest обнаруживать аномалию на пике разницы, а не на первом увиденном значении
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Ошибка joblib.load и Pickle.load «Нет атрибута XGBoostLabelEncoder»
    Anonymous » » в форуме Python
    0 Ответы
    59 Просмотры
    Последнее сообщение Anonymous
  • Meta load() Метод загрузки рекламы устарел. Как использовать load(withBidPayload: <#T##String#>)
    Anonymous » » в форуме IOS
    0 Ответы
    56 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»