写多个文件比。写一个大文件[在固态驱动器中]

时间:2013-10-08 08:56:02

标签: windows image performance filesystems

(我无法找到我的问题的明确答案,也许我使用了错误的搜索词)

我想在没有压缩或无损压缩的摄像机上录制许多图像,而不是那么强大的设备,只有一个固态硬盘。 在调查之后,我已经决定,如果有的话,压缩将只是按图像png(这不是讨论的一部分)。 鉴于这些限制,我希望能够以相机的最大可能频率进行录制。瓶颈是(仅一个)硬盘速度。我想使用RAM进行排队,并使用少量可用内核来并行压缩图像,这样就可以减少要写入的数据。

一旦数据被压缩,如果我在一个文件中传输所有字节,我是否可以获得写入速度的任何增益,或者,考虑到我正在使用固态驱动器,我可以只写一个文件(让我们说一下1或2 MB)每个映像仍然在最大磁盘带宽下工作? (或者非常接近它,比如> 90%)?

我不知道这是否重要,这将使用C ++及其库来完成。

1 个答案:

答案 0 :(得分:7)

  

我的问题是“简单”,如果将输出写入单个文件而不是许多2MB文件中,那么在使用固态驱动器时我可以获得显着的好处。

有一个好处,而不是一个重要的好处。固态驱动器的文件系统驱动程序已经知道如何跨多个非相邻集群分发文件数据,因此自己动手并没有帮助。必须在已包含文件的驱动器上安装大文件。通过分解,您强制额外的写入也添加这些段的目录条目。

固态驱动器的类型很重要,但这通常已由驱动程序完成,以实现“耗损均衡”。换句话说,故意将数据分散到驱动器上。这样可以避免耗尽闪存单元,它们在物理磨损和失效之前可以写入数量有限。传统上只保证10,000次写入,他们已经变得更好。你当然会运用它。值得注意的是闪存驱动器读取速度快但写入速度慢,这在您的情况下很重要。

将图像数据分解为单独的文件有一个明显的优势:从驱动器错误中恢复更容易。要么是灾难性的失败,要么只是在没有及时停车的情况下满足容量。你不会失去整个镜头。但是不方便任何程序从驱动器读取图像,它必须将它们粘合在一起。这也是一个重要的设计目标,如果你使用非标准的非压缩文件格式太不切实际,或者传输速度太慢或者太不方便,那么它就不会经常使用。