创建/保存100个图像到硬盘vs USB闪存驱动器是一个公平的测试来测试写入速度

本文关键字:测试 一个 速度 图像 100个 保存 硬盘 vs 驱动器 闪存 USB | 更新日期: 2023-09-27 18:01:24

我正在写一些代码来创建位图,做一些绘图,然后保存到文件。下面是一个简化版本:

FinalImage = new System.Drawing.Bitmap(FinalImageWidth, FinalImageHeight);
Pencil = Graphics.FromImage(FinalImage);
Pencil.Clear(Color.White);
Pencil.DrawImage(image,x,y);
FinalImage.Save(FinalImageSaveLocation + "test" + Counter + ".bmp");

这很好。

出于兴趣,我计时这个创建过程超过100次写入C:',它出现了2秒,然后我插入一个USB笔驱动器,写入100个图像到它,它花了5.5秒。

我认为闪存驱动器更快,虽然我知道不同的笔驱动器有不同的功能,猜测有板载USB控制器和缓存要考虑。我错过什么了吗?

谢谢

创建/保存100个图像到硬盘vs USB闪存驱动器是一个公平的测试来测试写入速度

作为两个文件系统之间的相对测试,这应该没问题。至于为什么USB驱动器看起来比较慢,可能有很多原因。也许那个特定的驱动器使用较慢的闪存。也许USB接口只能以12mbps(全速)的速度运行,而不是USB 2.0的速度。也许操作系统正在为HDD使用内存回写缓存,从而使您无法看到磁盘的实际性能。

但是,

作为绝对写入速度的基准,您的测试可能不是很准确。在内存中创建和绘制位图图像是一项CPU和内存密集型任务,因此您的绝对性能值可能会受到处理器和内存子系统的性能(或缺乏性能)的影响,从而导致跨多个平台的结果不一致。一个稍微好一点的方法可能是将1 KB的内存块清空,在要测试的设备上打开一个随机文件,然后计算将1 KB块写入该设备10,000次所需的时间。

就向这些设备写入数据的速度而言,比较是有效的。然而,这些差异很可能是由于硬件的不同。USB总线可能没有到硬盘驱动器的总线那么快,这会减慢速度。此外,如果你的笔被填满了,而你的硬盘没有,这将造成不同,因为文件将被碎片化。

所以它们可能反映了将文件从计算机保存到它们所花费的时间。但是它们不能作为对磁盘性能的绝对测试。

缓存(正如其他人所说)也很重要。