Open wtysos11 opened 3 years ago
字节广州提前批的三面问到的一个问题的原理(应该是),当时面试官问在没有压缩的情况下,为什么同样是复制文件,一个是一堆文件组成在一起大文件,一个是分散的小文件,问什么前者会比后者快。 当时因为在搞redis的pipeline,所以下意识想到的就是系统调用。当然,实际上应该不是系统调用,现代操作系统中磁盘到内存好像是有DMA这种操作,而且系统调用的耗时也不主要。主要应该有两个,一个是操作系统的文件系统可能会造成数据不连续存储(索引结构与页碎片的问题,对于大文件来说肯定是没有页内碎片这种东西的),另一个是机械硬盘连续读写的性能差距问题。
机械硬盘连续读和随机读写差距是非常大的。连续读的耗时只有内存级别,但是随机读写的话涉及到磁盘寻道,耗时会更久
https://www.zhihu.com/question/48254780
现实应用的话应该就是kafka了,我印象中kafka就是充分使用机械硬盘的连续读性能,达到了内存级别的耗时。
字节广州提前批的三面问到的一个问题的原理(应该是),当时面试官问在没有压缩的情况下,为什么同样是复制文件,一个是一堆文件组成在一起大文件,一个是分散的小文件,问什么前者会比后者快。 当时因为在搞redis的pipeline,所以下意识想到的就是系统调用。当然,实际上应该不是系统调用,现代操作系统中磁盘到内存好像是有DMA这种操作,而且系统调用的耗时也不主要。主要应该有两个,一个是操作系统的文件系统可能会造成数据不连续存储(索引结构与页碎片的问题,对于大文件来说肯定是没有页内碎片这种东西的),另一个是机械硬盘连续读写的性能差距问题。
机械硬盘连续读和随机读写差距是非常大的。连续读的耗时只有内存级别,但是随机读写的话涉及到磁盘寻道,耗时会更久
https://www.zhihu.com/question/48254780
现实应用的话应该就是kafka了,我印象中kafka就是充分使用机械硬盘的连续读性能,达到了内存级别的耗时。