androbench 参数解释

99ANYc3cd6
预计阅读时长 14 分钟
位置: 首页 参数 正文

AndroBench 是由阿姆斯特丹自由大学开发的,用于评估 Android 设备存储(如内部存储、SD 卡)读写性能的工具,它通过模拟真实世界的工作负载,给出一系列直观的分数。

核心测试模式

在解释具体参数之前,首先要理解 AndroBench 的两种核心测试模式,这是最关键的“参数”选择:

  1. Sequential (顺序读写)

    • 模拟场景:下载大文件、观看高清视频、复制大文件。
    • 工作原理:数据被连续地写入或读出存储介质,磁头/读写指针不需要频繁移动。
    • 特点:这是所有存储设备(包括机械硬盘 HDD)都能轻松完成的任务,速度最快,它主要反映了存储介质的理论最高带宽。
  2. Random (随机读写)

    • 模拟场景:启动 App、加载游戏、系统日常操作、多任务处理。
    • 工作原理:数据在存储介质上随机、不连续地分布,读写操作需要频繁地移动磁头/改变读写位置。
    • 特点:这是衡量固态硬盘 性能的关键指标,对于 SSD 随机性能比顺序性能更能体现其真实用户体验,机械硬盘在随机读写下性能会急剧下降。

要全面评估一块存储的性能,必须同时运行 Sequential 和 Random 测试,特别是对于手机或平板,Random 4K 的读写速度是衡量其日常使用流畅度的“金标准”。


详细参数解释

在 AndroBench 的 UI 界面或命令行模式下,你会看到以下可配置的参数:

Test Type (测试类型)

这是最核心的参数,决定了你运行的是哪种测试。

  • All Tests (所有测试)

    • 功能:运行所有可用的测试项目,包括不同文件大小、不同队列深度的顺序和随机测试。
    • 适用场景:最全面的性能评估,耗时最长,但结果最完整,适合需要详细了解存储设备所有性能指标的用户。
  • Sequential Read/Write (顺序读写)

    • 功能:只运行顺序读写测试。
    • 适用场景:快速评估存储的理论最大读写带宽,例如测试视频剪辑、文件传输的速度。
  • Random Read/Write (随机读写)

    • 功能:只运行随机读写测试。
    • 适用场景:重点评估存储的日常应用性能,特别是启动 App、加载游戏等场景下的表现,这是判断存储“快不快”的关键。
  • Database (数据库测试)

    • 功能:模拟数据库操作,如 SQLite 的读写。
    • 适用场景:专门针对需要进行大量数据库操作的应用进行性能评估,如社交 App、笔记软件等。
  • Android (Android 典型操作)

    • 功能:模拟 Android 系统和典型 App 的混合工作负载,包括顺序和随机读写。
    • 适用场景:更贴近真实 Android 用户体验的综合性能评估。

File Size (文件大小)

这个参数定义了测试所用单个测试文件的大小。

  • 常见选项:4KB, 16KB, 512KB, 1MB, 4MB, 16MB, 32MB, 128MB, 256MB, 512MB, 1GB。
  • 解释
    • 小文件 (如 4KB, 16KB):主要影响随机读写性能,因为随机读写本身就是由大量小 I/O 操作组成的。
    • 大文件 (如 128MB, 1GB):主要影响顺序读写性能,大文件能更好地利用存储的持续读写带宽。
  • 选择建议
    • 如果你想看最核心的随机性能,关注 Random 4K 的结果。
    • 如果你想看顺序性能,关注大文件(如 128MB)的顺序读写结果。

Queue Depth (队列深度)

这个参数非常重要,它模拟了有多少个读写请求在同时等待处理。

  • 解释
    • Queue Depth = 1:单队列,单次只处理一个 I/O 请求,这代表了存储设备在处理简单、串行任务时的性能。
    • Queue Depth > 1:多队列,2, 4, 8,这模拟了多任务并发场景(如后台下载、游戏加载、系统更新同时进行),现代 SSD 的控制器可以并行处理多个请求,因此队列深度越高,理论上的峰值性能也越高。
  • 选择建议
    • Queue Depth = 1 的结果更能反映存储介质本身的物理极限。
    • 较高的 Queue Depth (如 4, 8) 的结果更能反映在重度多任务下的真实性能。

Multi-threading (多线程)

这个参数决定了测试程序会同时启动多少个线程来执行 I/O 操作。

  • 解释:线程数越多,对存储 I/O 子系统的并发压力就越大。
  • 与 Queue Depth 的关系线程数队列深度 通常会一起作用,4个线程,每个线程的队列深度为2,总共就会产生 4 * 2 = 8 个并发 I/O 请求。
  • 选择建议
    • 线程数 = 1:最简单的测试,压力最小。
    • 多线程 (如 4, 8):模拟更复杂的真实世界负载,对存储的性能考验更全面。

Use AIO (使用异步 I/O)

这是一个高级选项,影响 I/O 操作的执行模式。

  • 同步 I/O (SIO):发起一个 I/O 请求后,程序必须等待这个请求完成才能继续执行下一步,这会阻塞线程。
  • 异步 I/O (AIO):发起一个 I/O 请求后,程序可以立即继续做其他事情,无需等待,当 I/O 完成后,系统会通过回调等方式通知程序。
  • 解释:AIO 是现代高性能系统(包括 Android)普遍采用的方式,尤其是在处理并发 I/O 时效率更高,开启 AIO 通常能获得更真实、更高的性能分数。
  • 选择建议保持开启,除非你有特殊的研究需求,否则始终使用 AIO 来进行测试。

Test Directory (测试目录)

指定测试文件在设备上的存放位置。

  • 解释:你可以将测试放在不同的分区,
    • /storage/emulated/0/:设备的内部共享存储空间。
    • /storage/sdcard1/:可移动的 SD 卡(如果存在)。
    • 通过开发者选项挂载的特定分区。
  • 选择建议:根据你的测试目标选择,想测手机内置存储,就用默认路径;想测 SD 卡,就修改为 SD 卡的路径。

Wipe Cache (清除缓存)

在每次测试开始前,是否清除测试目录。

  • 解释:强烈建议始终开启这个选项,这样可以保证每次测试都在一个“干净”的环境下进行,避免了上次测试产生的缓存数据干扰本次测试结果的准确性。

如何选择参数组合?(实战指南)

测试目标 推荐的 Test Type 关键关注结果 简要说明
快速了解综合性能 All Tests Random 4K Read/Write,总分 最全面的测试,耗时较长,Random 4K 是核心指标。
评估日常使用流畅度 Random Read/Write Random 4K Read/Write,Random 4K QD1 Read/Write 直接关系到 App 启动速度和游戏加载速度。
评估文件传输/视频剪辑 Sequential Read/Write Sequential 128MB Read/Write 反映存储的理论最大带宽。
评估数据库性能 Database Random 4K Read/Write (针对数据库操作) 模拟特定应用场景的性能。
极限性能测试 All Tests Random 4K QD8 Read/Write 在高并发压力下的性能表现,适合顶级设备对比。

结果解读

AndroBench 会给出每个测试项目的 MB/s (兆字节/秒)IOPS (Input/Output Operations Per Second,每秒读写次数)

  • MB/s (Throughput / 吞吐量):衡量数据传输的“管道”有多粗。顺序读写主要看这个指标。

    顺序读取 500 MB/s 意味着每秒可以读取 500MB 的数据。

  • IOPS (Operations / 操作次数):衡量处理小请求的“速度”有多快。随机读写主要看这个指标。

    随机读取 50K IOPS 意味着每秒可以完成 50,000 次独立的读写操作。

对于普通用户来说,看懂 AndroBench 的关键在于:

  1. 区分顺序和随机:顺序看 MB/s,随机看 IOPS
  2. 抓住核心指标Random 4K Read/Write 的 IOPS 是衡量日常体验最重要的指标。
  3. 保持测试条件一致:如果要对比不同设备或不同存储,请尽量使用相同的测试参数组合(例如都使用 "All Tests"),这样结果才有可比性。
-- 展开阅读全文 --
头像
三星Note4智能休眠怎么用?
« 上一篇 今天
ideapad flex14拆机后内部有何设计亮点?
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码

最近发表

标签列表

目录[+]