我希望这不是太离题,但发现了一个有趣的问题。我有一张要备份的旧 CD。如果使用 System Drag 'n' Drop 从新鲜的副本(将 CD 用于第一次驯服),cp
或者rsync
它只是挂起。
这些文件是视频文件。我可以在 VLC 中播放视频文件。如果我观看整个视频,我可以立即将视频文件复制到我的硬盘上。我假设 VLC 已将数据加载到硬盘驱动器中。
我用 Rust 写了一个简单的cp
程序。它打开文件,并通过固定大小的缓冲区,将一个文件读入该缓冲区,然后将缓冲区写入另一个文件(基本上使用std::fs::copy
,一个文件到另一个文件)。
我尝试调整缓冲区大小(据我所知,这是我唯一可以更改的)以合理的速度复制数据。到目前为止,我发现的最好的是 1 KiB 和 96 KiB 缓冲区。但是复制速度非常慢。没有什么比实时观看视频更好的了。
我的问题是:
- 为什么会这样?
- vlc 做了什么操作系统没有做的事情?