Dite 是一款面向 Windows 平台的磁盘性能测试工具,基于微软官方工具 DiskSpd 开发,主打“预设即开即用”。用户无需学习复杂的命令行参数,只需选择测试盘符和预设模式,即可像 CrystalDiskMark 一样快速获得直观的顺序/随机读写成绩。
- 一键预设:内置 CrystalDiskMark-Like(1-9)、CopyCross(11-17)两组预设,覆盖从基准跑分到真实跨盘复制测试。
- 真实世界场景:Realistic 模式使用大文件填充后再测试,反映日常拷贝、视频剪辑、游戏加载等场景下的真实表现。
- 结果直观:测试结束后直接在终端显示汇总结果,并自动生成日志文件,方便保存和对比。
- 轻量便携:打包后为单个可执行文件夹,无需安装 Python,拷贝即用。
市面上已有 CrystalDiskMark、Iometer、AS SSD Benchmark 等专业工具,Dite 并不打算与它们正面竞争,而是填补一个中间需求:
- 比 CrystalDiskMark 更贴近真实使用:通过预填充、清缓存、大文件写入等步骤,避免“空盘跑分”带来的虚高。
- 比 Iometer 更易用:不需要手动配置队列深度、块大小、测试时长,预设已经帮你调好。
- 结果可存档:每次测试都会生成一份 UTF-8 编码的日志文件,方便你记录不同硬盘、不同系统、不同时间点的表现。
一句话:Dite 想做的是“拿来就能跑、结果能看懂、日志能留存”的磁盘性能测试工具。
适用版本:V24 及以后。
从发布页面下载 Dite_V24_x64.7z,解压到任意目录,例如:
D:\Tools\Dite_V24\
解压后目录结构大致如下:
Dite_V24/
├── Dite.exe
├── Config/
│ ├── tools.json
│ ├── engine_defaults.json
│ ├── tasks.json
│ ├── presets.json
│ └── settings.json
└── Tools/
├── diskspd.exe
└── RAMMap.exe
右键点击 Dite.exe,选择“以管理员身份运行”。
如果未以管理员身份运行,程序会自动进入非管理员模式:
- 仍然会完成大部分测试步骤。
- 需要管理员权限的步骤(如 RAMMap 缓存清理)会被自动跳过。
- 测试结束时会在汇总下方提示已跳过的步骤。
建议普通用户尽量以管理员身份运行,以获得最准确的测试结果。
程序启动后会提示输入目标磁盘盘符:
请输入目标磁盘盘符(默认 D):
直接按回车使用默认盘符,或输入你想测试的盘符(如 C、E)后按回车。
请选择预设:
1. [ Realistic ] 真实世界大文件测试,顺序写 32G、随机写 8G ~300s
2. [ Fast ] 5 秒快速摸底,覆盖顺序和随机、大块和小块 ~60s
3. [ Fast-Random ] Fast 的随机版,仅随机 4K Q32T1 读写 ~30s
4. [ Fast-Sequential ] Fast 的顺序版,仅顺序 1M Q8T1 读写 ~30s
5. [ CrystalDiskMark-Behavior ] 模拟 CrystalDiskMark 行为:重复 5 次取最大值 ~215s
...
11. [ CopyCross-Specified ] 手动指定源文件路径进行跨盘复制 ~-
12. [ CopyCross-Big-GenData ] 真数据跨盘复制测试,25个大文件 96GiB ~-
13. [ CopyCross-Mixed-GenData ] 真数据跨盘复制测试,50505混合文件 96GiB ~-
16. [ CopyCross-Big-Simulated ] 异步生成真数据并跨盘复制测试,25文件96GiB ~-
17. [ CopyCross-Mixed-Simulated ] 异步生成真数据并跨盘复制测试,50505文件96GiB ~-
输入编号 1-5 后按回车即可开始测试。
除了交互式运行,Dite 也支持命令行参数,方便脚本或快捷方式调用:
Dite.exe --disk D --preset 1 --no-pause
常用参数:
--disk <盘符>:直接指定目标磁盘盘符,例如--disk D。--preset <编号>:直接指定预设,例如--preset 1。--config <路径>:指定自定义Config/目录路径。--no-pause:运行结束后不等待按键,适合脚本调用或计划任务。
测试过程中会实时输出每一步的进度和 DiskSpd 原始结果。测试结束后会显示汇总,同时展示速度、IOPS 和延迟(默认 P99):
========================================================
Full Summary Results
--------------------------------------------------------
Metric Speed IOPS P99 Latency
--------------------------------------------------------
Read Seq1M Q8T1 : 6790.83 MiB/s 6790.83 0.521 ms
Read Seq1M Q1T1 : 3258.25 MiB/s 3258.25 0.312 ms
Read Rnd4K Q32T1 : 1095.67 MiB/s 28061.50 0.089 ms
Read Rnd4K Q1T1 : 78.19 MiB/s 20024.00 0.048 ms
Write Seq1M Q8T1 : 6345.31 MiB/s 6345.31 1.203 ms
Write Seq1M Q1T1 : 4142.60 MiB/s 4142.60 0.244 ms
Write Rnd4K Q32T1: 703.22 MiB/s 18003.20 0.112 ms
Write Rnd4K Q1T1 : 292.22 MiB/s 74808.00 0.013 ms
========================================================
IOPS 和延迟仅在启用 DiskSpd -L 延迟采集时输出;未启用时对应列显示 N/A。
所有输出都会保存到程序目录下的 Outputs 文件夹中,文件名格式为:
Outputs/Dite_V24_<盘符>-disk_<预设名>_<时间戳>.log
例如:
Outputs/Dite_V24_D-disk_Fast_20260627_145500.log
如果程序在早期阶段出错,会生成回退日志:
Outputs/Dite_V24_Error_<时间戳>.log
日志采用 UTF-8 with BOM 编码,Windows 记事本可直接打开。
- 测试前关闭其他占用磁盘的程序(如下载、拷贝、杀毒扫描)。
- 目标磁盘剩余空间要足够,Realistic 模式会创建最大约 32GiB 的临时文件。
- 每次测试前会自动清理上一次测试残留的临时文件;测试结束后也会自动清理。
- 如果想对比不同硬盘,建议在同一台机器、相同系统负载下跑同一预设。
- DiskSpd 预设新增 IOPS 和延迟(Latency)指标输出,Summary 同时展示速度、IOPS 和 P99 延迟。
repeat调度动作支持多指标独立聚合:可分别对速度取max、IOPS 取max、延迟取min,未指定指标默认mean。- 删除旧
measure调度动作,统一使用run + store。 fill动作重命名为diskspd_fill,明确其为 DiskSpd 专属填充步骤。- CrystalDiskMark 行为预设(5-9)改为重复 5 次并取速度/IOPS 最大值、延迟最小值,更贴近 CrystalDiskMark 的取最高成绩逻辑。
- V23 源码归档至
Archive/V23/。
- 新增 CopyCross 预设组(11-17),基于 RoboCopy 实现跨盘真实数据复制测试。
- 新增异步管线模拟模式(16-17),多线程并发生成+复制+清理,大幅提升测试效率。
- 预设重构:Realistic 移至第 1 位,1-9 为 DiskSpd 预设,11-17 为 CopyCross 预设。
- 新增
filegen引擎,基于 CSPRNG + XOR 生成高质量随机测试数据。 - RoboCopy 引擎支持中英文双语输出解析,
/NFL抑制文件列表提升性能。 - 新增
simulate、store、verify、cleanup调度动作。 _repeat_step聚合值回写context.results,使 summary 正确显示聚合结果。
- 升级为 Python 命令行程序,引入任务组(TaskGroup)和调度器(Scheduler)。
- 预设完全由
presets.json声明,代码不再硬编码测试流程。 - 使用 Tee 统一捕获屏幕输出和日志文件,确保两者内容一致。
- 日志文件名改为
Dite_V21_<盘符>-disk_<预设名>_<时间戳>.log。 - 支持 measure / fill / repeat / summary 等调度动作,实现预填充、自动估算填充时间、汇总结果。
- 未提升管理员权限时打印警告并继续运行,
admin_mode: "require"的步骤(如 RAMMap 缓存清理)会被自动跳过并记录。 - 控制台输出强制 UTF-8,避免中文乱码。
- 新增
--disk、--preset、--config、--no-pause命令行参数。 - 打包产物可执行文件为
Dite.exe,发布包为Dite_V21_x64.7z。
- 首个完整的 Python 命令行版本,替代了批处理脚本。
- 支持 CrystalDiskMark-Like、Realistic、Fast 三种基础预设。
- 结果解析从日志文件改为直接读取 DiskSpd 的标准输出。
- 浮点计算交给 Python,避免了批处理
set /a的整数截断问题。
V17 是批处理脚本时代的最终版本,也是后续 Python 版本的逻辑基础:
- V1–V9:早期脚本阶段,主要验证 DiskSpd 参数组合和结果解析思路,日志名称、测试流程都在快速迭代。
- V10–V16:逐步形成 CrystalDiskMark-Like 和 Realistic 两条主线,引入 RAMMap 清缓存、段落化结果解析、变量化配置等机制。
- V17:批处理脚本最终版,分为
DiskSpd_CrystalDiskMark-Like_V17.bat和DiskSpd_Realistic_V17.bat,奠定了 V20/V21 的测试逻辑和临时文件命名规范。
更详细的版本历史、各版本参数对比、文件命名规则变化,请参考:
版本演变分析报告.mdArchive/Early/(V1–V17 批处理脚本与历史数据)Archive/V20/(V20 Python 源码归档)Archive/V21/(V21 Python 源码归档)
Dite 本身为项目原创代码,测试功能依赖以下第三方工具:
请确保你使用的 diskspd.exe 和 RAMMap.exe 来自官方渠道。