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

2021-09-18 09:43:57 +08:00
 chuwt

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

2989 次点击
所在节点    程序员
10 条回复
JKeita
2021-09-18 09:52:50 +08:00
顺序读也就每次加载一段数据到内存,随机的话感觉优化不了。
MidGap
2021-09-18 10:01:29 +08:00
可以参考 mmap
rrfeng
2021-09-18 10:05:38 +08:00
根据文件内容,拆分后索引起来。
如果文件本身有序那也可以索引 offset
wellsc
2021-09-18 10:07:01 +08:00
文件啥类型的,纯文本?有没有格式?
ch2
2021-09-18 10:08:15 +08:00
直接 mmap
misaka19000
2021-09-18 10:20:19 +08:00
mmap+1 让 OS 帮你调度
llllIIIIllll
2021-09-18 13:54:08 +08:00
买 1T 内存
index90
2021-09-18 14:22:45 +08:00
了解一下 golang 的 netpoll,仿造一个?
CrazyMonkeyV
2021-09-18 16:26:09 +08:00
长打开这个文件,不关闭就行了
b00tyhunt3r
2021-09-20 00:37:58 +08:00
不 close 不就行了吗?

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

https://www.v2ex.com/t/802687

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

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

© 2021 V2EX