基本使用

networkQuality 是一个命令行工具,需要使用「终端」App(或者你首选的其他终端模拟器)运行。方法是:

首先,点按「程序坞」(Dock)中的「启动台」(LaunchPad)图标,在搜索栏中键入「终端」,然后点按「终端」图标。

(或者,在「访达」中,打开 /应用程序/实用工具 文件夹,然后双击「终端」。)

在打开的终端窗口中,输入 networkQuality(注意大小写),然后回车。

此时,系统会开始同时测试下载和上传速度,并将当前速率实时显示在终端窗口中,形如:

current download capacity: 247.850 Mbps - current upload capacity: 9.545 Mbps

大约半分钟后,测速完成,终端会显示一段测速结果,形如:

Upload capacity: 16.938 Mbps
Download capacity: 232.850 Mbps
Upload flows: 20
Download flows: 16
Responsiveness: Low (188 RPM)

其中,「Upload/download capacity」是指上传/下载的带宽;「Upload/download flows」是指刚才测试中完成传输的测速文件数量。

至于「Upload/download responsiveness」,是指上传和下载的综合「响应能力」,根据 Apple 的支持文档,它的衡量指标是每分钟往返次数 (RPM),即在正常工作条件下,网络能够在一分钟内完成的连续往返次数或事务数量。

根据 RPM 的高低数值不同,networkQuality 对响应能力的评价也分为「低」「中」「高」三个等级。这可以大致反映当前网络的拥堵程度,从而帮助间接估测视频通话、游戏等应用的效果:

  • 评价为「Low」(低),说明同一网络的设备会互相影响,导致其他设备的网络连接不可靠;
  • 评价为「Medium」(中),则表明多设备共享网络时会造成短暂卡顿;
  • 评价为「High」(高)则最为理想,表明网络通畅,多设备并行联网也能和平共处,保持良好连通。

技术细节和进阶操作

如上所述,networkQuality 工具会使用 Apple 的 CDN 作为测试服务器。

具体而言,该工具默认会从一个外部 json 格式文件(目前位于 https://mensura.cdn-apple.com/api/v1/gm/config )获取测试配置。该文件包含三个测试文件地址:

此外,networkQuality 命令可以接受一些参数。比较有实际意义的包括:

  • -c 会输出 json 格式的测速详情;
  • -s 会分开测试下载和上传,而非像默认那样对两者同时测试(同时测试更能反映通话等真实应用的场景);
  • -I 可以测试特定网络接口的速度,例如,命令 networkQuality -I en0 是指测试内建 Wi-Fi 网络的速度。

更多参数和说明,可以用如下命令查阅手册页面 networkQuality(8)man networkQuality

networkQuality的更多相关文章

  1. 利用ICMP协议的PING命令获取客户端当前网络质量 by徐文棋

    无论在windows下,linux也好,unix也好,都可以通过 Ping命令获得当前设备的网络延迟,延迟是客户端到服务端的网络响应时间.通常延迟越低,反应速度越快 这里使用了SimplePing   ...

  2. 如何基于ZEGO SDK 实现通话质量监测

    如何基于ZEGO SDK 实现通话质量监测 1 功能简介 在进行视频通话过程中,用户有时候会出现网络不好的情况,比如在进行多人视频通话或者多人唱歌时,我们需要实时显示用户的网络质量. 示例源码 请参考 ...

  3. 如何基于 ZEGO SDK 实现 Android 通话质量监测

    功能简介 在进行视频通话过程中,用户有时候会出现网络不好的情况,比如在进行多人视频通话或者多人唱歌时,我们需要实时显示用户的网络质量. 示例源码 参考 下载示例源码 获取源码. 相关源码请查看 &qu ...

随机推荐

  1. 这份数据安全自查checklist请拿好,帮你补齐安全短板的妙招全在里面!

    企业数据安全自查Checklist! 快来对照表单,看看你的数据安全及格了吗? 一.京东云安全Checklist建议 京东云安全拥有业界领先的安全研究团队,经过多年实践与经验积累,京东云已面向不同业务 ...

  2. HashMap的哈希函数为何用(n - 1) & hash

    前言 在上一篇 Java 中HashMap详解(含HashTable, ConcurrentHashMap) 中提到在map.put(key, value)的过程中,计算完key的hash值, 是通过 ...

  3. Django 使用Pycharm 创建工程

    一.Pycharm 创建Django 工程 事实上,我们一般不使用命令行,而是直接在Pycharm 中创建Django 项目. Pycharm 是进行Django 开发的最佳 IDE,请大家自行安装, ...

  4. mysql数据库log-slave-updates 参数解释

    A(主库) ===> B(从库/主库) ===> C(从库) 需要在B的配置文件中添加log-slave-updates=1 从库做为其他从库的主库时 log-slave-updates ...

  5. Elasticsearch集群黄色原因的终极探秘

    文章转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484125&idx=1&sn=18274d6 ...

  6. kubernetes为容器定义环境变量

    示例Pod 的配置文件 envars.yaml Copy envars.yaml to clipboard apiVersion: v1 kind: Pod metadata: name: envar ...

  7. C++面向对象编程之成员模板、模板特化、偏特化和模板模板参数

    1.成员模板 理解起来就是类是模板类,他里面的成员函数又是个模板函数 上图例子:用派生类构造父类 2.模板特化 就是在类模板泛化后写特化的类,在template<>里不绑定类型,而在类后面 ...

  8. python-数据描述与分析2(利用Pandas处理数据 缺失值的处理 数据库的使用)

    2.利用Pandas处理数据2.1 汇总计算当我们知道如何加载数据后,接下来就是如何处理数据,虽然之前的赋值计算也是一种计算,但是如果Pandas的作用就停留在此,那我们也许只是看到了它的冰山一角,它 ...

  9. POJ1741 tree (点分治模板)

    题目大意: 给一棵有 n 个顶点的树,每条边都有一个长度(小于 1001 的正整数).定义 dist(u,v)=节点 u 和 v 之间的最小距离.给定一个整数 k,对于每一对 (u,v) 顶点当且仅当 ...

  10. 洛谷P7167 [eJOI 2020 Day1] Fountain (单调栈+ST)

    开两个数组:to[i][j]表示从i这个位置向下的第2j个圆盘是哪个,f[i][j]表示流满从i这个位置向下的 2j 个圆盘需要多少体积的水. 详情见代码: 1 #include<bits/st ...