gpt4 book ai didi

go - 将文件分成几个 block

转载 作者:行者123 更新时间:2023-12-01 22:25:48 24 4
gpt4 key购买 nike

假设我们有一个 100k 行或约 2gB 的文件,我们希望将它分成 10 个 block ,每个 block 10k 行,以便可以并行处理这些 block 。有什么方法可以在 10 个 block 的每一个的起始行中创建指针,而无需遍历整个文件?我正在考虑以某种方式根据文件大小划分文件,以便每 200mB 创建指针。这甚至可行吗?

最佳答案

是的当然。但是您需要做出一些假设并接受您的 block 将不准确。

要么假设标准线长,要么扫描几条线并测量它。然后你将它乘以你想要的行数,并希望这是一个很好的估计。

或者,如果您只想要 10 个 block ,则取文件大小并除以 10。

因此,您可以使用 lseek 和 read、pread 或 mmap 跳转到文件中的那个点。然后向前扫描,直到找到一行的结尾和下一行的开头。

除非您实际计算每一行,否则它不会是精确的行数。但它会非常接近。

我很无聊和好奇,所以看看这个:
https://github.com/zlynx/linesection

关于go - 将文件分成几个 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60010203/

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