1
billlee 2023-06-14 14:17:58 +08:00 via Android 1
但是磁盘读取也是一次至少读 4K 的啊
|
2
oldsix2 2023-06-14 14:31:39 +08:00
SSD 磁盘最小 IO 是 Block 限制的吧,这个 mount 之前应该可以修改的。
改的太小,对于一次获取大量数据的情况,IO 次数会成倍增加。 |
3
GrayXu 2023-06-14 14:37:03 +08:00
如#1 ,SSD 不能不读整页数据,就像 DRAM 也得按 64B 来操作。
|
4
codehz 2023-06-14 14:47:26 +08:00
还有 page size 的问题,这个部分也不是说改代码就能解决的(
|
5
lemonleo 2023-06-14 14:52:54 +08:00
从 SSD 向内存读取整页数据和读取几个字节数据相比,应该不会慢几百倍那么多。
|
6
twl007 2023-06-14 14:56:47 +08:00
整页读取就是为了解决按字节读取太慢的问题 如果真的按照按字节去读取 速度那是真的慢
另外 SSD 本身底层的逻辑也是随机读写 跟 HDD 不一样 |
7
x1596357 2023-06-14 14:58:35 +08:00
从读取几个字节跟读取 4k 速度几乎可以说没有多大差别。因为 ssd 的设计,一读就是一个 flash 的行。你可以尝试使用 vmtouch 之类的工具,先把文件预读到内存里。不要局限于一种思路。
|
8
ho121 2023-06-14 15:04:49 +08:00
1. 程序中只读取几个字节,操作系统不会真仅仅读取这几个字节的数据。第一次读取可能需要把页换到内存里,下一次读取同页的数据时,大概率是直接在内存中读取的。
2. 硬盘读取数据也是按“块”来读取的,而不是一个字节一个字节的读取。哪怕操作系统真的读取 1 字节的数据,硬盘也会把整个块读取出来,然后返回这一个字节的数据。如果是读取连续几个字节的数据,且在同一个块内,硬盘只需要一次读操作。 |
9
litguy 2023-06-14 15:15:49 +08:00 1
字节读取 SSD 不支持,这是块存储
你需要的是傲腾 memory |
10
MrKrabs 2023-06-19 22:44:08 +08:00
是不是你的 ssd 太拉了
|