现在需要对一个文件频繁的读,没有写,文件大小在 100-500G 左右,有顺序读,有随机读。 现在是读取次数太多陷入 syscall 太多然后导致调度占用时间变多,大佬们这种如何优化。
1
JKeita 2021-09-18 09:52:50 +08:00
顺序读也就每次加载一段数据到内存,随机的话感觉优化不了。
|
2
MidGap 2021-09-18 10:01:29 +08:00
可以参考 mmap
|
3
rrfeng 2021-09-18 10:05:38 +08:00 via Android
根据文件内容,拆分后索引起来。
如果文件本身有序那也可以索引 offset |
4
wellsc 2021-09-18 10:07:01 +08:00
文件啥类型的,纯文本?有没有格式?
|
5
ch2 2021-09-18 10:08:15 +08:00
直接 mmap
|
6
misaka19000 2021-09-18 10:20:19 +08:00
mmap+1 让 OS 帮你调度
|
7
llllIIIIllll 2021-09-18 13:54:08 +08:00
买 1T 内存
|
8
index90 2021-09-18 14:22:45 +08:00
了解一下 golang 的 netpoll,仿造一个?
|
9
CrazyMonkeyV 2021-09-18 16:26:09 +08:00
长打开这个文件,不关闭就行了
|
10
b00tyhunt3r 2021-09-20 00:37:58 +08:00
不 close 不就行了吗?
|