Я пытаюсь вычислить пересечение двух мультииндикатов bsGroupIdx
и shotsDiffand
. Похоже, что метод index.intersect () вызывает утечку памяти.
print( f"bsGroupIdx {bsGroupIdx.nbytes/1e6} Mb")
print( f"shotsDiff.index {shotsDiff.index.nbytes/1e6} Mb")
print( f"1 | process mem {process.memory_info().rss/1e6} Mb")
bsBinIdx = bsGroupIdx.intersection(shotsDiff.index)
print( f"2 | process mem {process.memory_info().rss/1e6} Mb")
Вывод:
bsGroupIdx 3.36316 Mb
shotsDiff.index 0.083512 Mb
1 | process mem 10822.488064 Mb
2 | process mem 10840.846336 Mb
Таким образом, пересечение двух объектов размером ~ 3,5 Мбайт приводит к затратам мне ~ 18 мб памяти. Поскольку я делаю это в al oop, ситуация быстро взрывается.
Кто-нибудь знает, как с этим бороться? Может ли это быть связано с тем, что индекс является неизменным, как предлагается здесь? Утечка памяти в python pandas Индекс перестановки
Большое спасибо!