我想知道使用WeakRef处理大型数据集的开销是多少?
我要执行的任务是这样的:
huge = get_array_of_weak_refs # 100000000 entries or more :)
result = huge.length * huge.inject(0) { |accum, it| accum += it.total } # much more complicated, just a sample
假设这get_array_of_weak_refs
不耗时且具有O(1)
复杂性。所以唯一关心的是huge
数组的内存大小。
我现在也不关心计算result
.
如果它huge
是一个普通数组,那么它当然可能不适合内存。
但是,如果将 WeakRef 用作该数组的元素会有所帮助吗?因此,在我们迭代了一个元素之后x
,它可以被垃圾收集以释放一些内存。
这种情况的开销是多少?有什么选择吗?