1 billlee 2023-06-14 14:17:58 +08:00 via Android ![]() 但是磁盘读取也是一次至少读 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 ![]() 字节读取 SSD 不支持,这是块存储 你需要的是傲腾 memory |
10 MrKrabs 2023-06-19 22:44:08 +08:00 是不是你的 ssd 太拉了 |