Python, профилирование памяти
Есть два алгоритма выдающие одинаковый результат. В качестве исходных данных используются два двумерных массива, задача алгоритмов произвести поиск индексов строк, в которых совпадают первые 5 элементов в обоих массивах, и вывести двумерный массив пар этих индексов. Вот обе реализации:
matches = np.array(np.all((np.round(array1[:,:ibeta+1], decimals=4)[:, None, :] == np.round(array2[:,:ibeta+1], decimals=4)[None, :, :]), axis=-1).nonzero()).T
matches = np.array([])
for i in range(array1.shape[0]):
correspond_map = np.all((np.round(array1[i, :ibeta+1], decimals=4) == np.round(array2[:,:ibeta+1], decimals=4)), axis=-1)
idx = np.where(correspond_map)[0]
if idx.shape[0] != 0:
if matches.shape[0] != 0:
matches = np.vstack((matches, np.array([i, idx[0]])))
else:
matches = np.array([i, idx[0]])
Необходимо сравнить затрачиваемую оперативную память на оба алгоритма. Memory profiler либо выдает чушь либо я не правильно его использую. Подскажите пожалуйста как правильно замерить оперативку на обе реализации.
Источник: Stack Overflow на русском