gpt4 book ai didi

java - 外部洗牌 : shuffling large amount of data out of memory

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:59:25 26 4
gpt4 key购买 nike

我正在寻找一种方法来随机播放不适合内存(大约 40GB)的大量数据。

我有大约 3000 万个条目,长度可变,存储在一个大文件中。我知道该文件中每个条目的开始和结束位置。我需要随机播放这些不适合 RAM 的数据。

我想到的唯一解决方案是将包含从 1N 的数字的数组打乱,其中 N 是条目数, 与 Fisher-Yates algorithm然后根据此顺序将条目复制到新文件中。不幸的是,此解决方案涉及大量查找操作,因此会非常慢。

是否有更好的解决方案来对均匀分布的大量数据进行洗牌?

最佳答案

首先解决shuffle 问题。为此,请为您的条目发明一种哈希算法,该算法会产生类似随机的结果,然后对哈希进行正常的外部排序。

现在您已经将shuffle 转换为sort,您的问题变成了寻找适合您的口袋和内存限制的高效外部排序算法。这现在应该像 google 一样简单。

关于java - 外部洗牌 : shuffling large amount of data out of memory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14628072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com