我正在尝试计算两个多指标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.5Mb大小的对象的交集最终使我损失了〜18 Mb的内存。由于我是在循环执行此操作,因此情况迅速爆发。
有人知道如何处理吗?是否可能与此处建议的索引不变有关? Memory leak in python pandas reshuffling index
非常感谢!