如何优化 Go 频繁的读文件导致的调度开销

2021 年 9 月 18 日
 chuwt

现在需要对一个文件频繁的读,没有写,文件大小在 100-500G 左右,有顺序读,有随机读。 现在是读取次数太多陷入 syscall 太多然后导致调度占用时间变多,大佬们这种如何优化。

3435 次点击
所在节点    程序员
10 条回复
JKeita
2021 年 9 月 18 日
顺序读也就每次加载一段数据到内存,随机的话感觉优化不了。
MidGap
2021 年 9 月 18 日
可以参考 mmap
rrfeng
2021 年 9 月 18 日
根据文件内容,拆分后索引起来。
如果文件本身有序那也可以索引 offset
wellsc
2021 年 9 月 18 日
文件啥类型的,纯文本?有没有格式?
ch2
2021 年 9 月 18 日
直接 mmap
misaka19000
2021 年 9 月 18 日
mmap+1 让 OS 帮你调度
llllIIIIllll
2021 年 9 月 18 日
买 1T 内存
index90
2021 年 9 月 18 日
了解一下 golang 的 netpoll,仿造一个?
CrazyMonkeyV
2021 年 9 月 18 日
长打开这个文件,不关闭就行了
b00tyhunt3r
2021 年 9 月 20 日
不 close 不就行了吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/802687

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX