networkQuality
基本使用
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 )获取测试配置。该文件包含三个测试文件地址:
- 一个小文件下载地址(目前位于 https://mensura.cdn-apple.com/api/v1/gm/small,大小为 1 字节、内容为字母 x);
- 一个大文件下载地址(目前位于 https://mensura.cdn-apple.com/api/v1/gm/large,大约 4GB,内容为字母 x 的填充);
- 一个上传文件测试地址(目前位于 https://mensura.cdn-apple.com/api/v1/gm/slurp)。
此外,networkQuality 命令可以接受一些参数。比较有实际意义的包括:
-c会输出 json 格式的测速详情;-s会分开测试下载和上传,而非像默认那样对两者同时测试(同时测试更能反映通话等真实应用的场景);-I可以测试特定网络接口的速度,例如,命令networkQuality -I en0是指测试内建 Wi-Fi 网络的速度。
更多参数和说明,可以用如下命令查阅手册页面 networkQuality(8):man networkQuality
networkQuality的更多相关文章
- 利用ICMP协议的PING命令获取客户端当前网络质量 by徐文棋
无论在windows下,linux也好,unix也好,都可以通过 Ping命令获得当前设备的网络延迟,延迟是客户端到服务端的网络响应时间.通常延迟越低,反应速度越快 这里使用了SimplePing ...
- 如何基于ZEGO SDK 实现通话质量监测
如何基于ZEGO SDK 实现通话质量监测 1 功能简介 在进行视频通话过程中,用户有时候会出现网络不好的情况,比如在进行多人视频通话或者多人唱歌时,我们需要实时显示用户的网络质量. 示例源码 请参考 ...
- 如何基于 ZEGO SDK 实现 Android 通话质量监测
功能简介 在进行视频通话过程中,用户有时候会出现网络不好的情况,比如在进行多人视频通话或者多人唱歌时,我们需要实时显示用户的网络质量. 示例源码 参考 下载示例源码 获取源码. 相关源码请查看 &qu ...
随机推荐
- 从零教你使用MindStudio进行Pytorch离线推理全流程
摘要:MindStudio的是一套基于华为自研昇腾AI处理器开发的AI全栈开发工具平台,该IDE上功能很多,涵盖面广,可以进行包括网络模型训练.移植.应用开发.推理运行及自定义算子开发等多种任务. 本 ...
- 网站SQL注入之数字型注入和字符型注入
什么是SQL注入- (SQL Injection)是一种常见的Web安全漏洞,攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击.1,是一种将SQL语句插入或添加到应用(用户)的 ...
- java基础学习:java中的反射
一.什么是java反射 什么是 java 的反射? 说到反射,写这篇文章时,我突然想到了人的"反省",反省是什么?吾一日三省吾身,一般就是反思自身,今天做了哪些对或错的事情. ja ...
- KingbaseES集群部署工具安装
关键字: KingbaseES.Java.ClientTools 一.安装前准备 1.1 软件环境要求 金仓数据库管理系统KingbaseES V8.0支持微软Windows 7.Windows XP ...
- KingbaseES R6 集群 recovery 参数对切换的影响
案例说明:在KingbaseES R6集群中,主库节点出现宕机(如重启或关机),会产生主备切换,但是当主库节点系统恢复正常后,如何对原主库节点进行处理,保证集群数据的一致性和安全,可以通过对repmg ...
- Linux_etc-passwd文件总结
文件内容 ## # User Database # # Note that this file is consulted directly only when the system is runnin ...
- [Python]-tqdm模块-给for循环加上进度条
import tqdm 使用tqdm模块,可以在漫长的for循环加上一个进度条,显示当前进度百分比. 将tqdm写在迭代器之外即可:tqdm(iterator) for i in tqdm(range ...
- Redux(mvc、flux、react-redux)
其他章节请看: react实战 系列 Redux 关于状态管理,在 Vue 中我们已经使用过 Vuex,在 spug 项目中我们使用了 mobx,接下来我们学习 Redux. 本篇以较为易懂的方式讲解 ...
- 基于electron+vue+element构建项目模板之【自定义标题栏&右键菜单项篇】
1.概述 开发平台OS:windows 开发平台IDE:vs code 本篇章将介绍自定义标题栏和右键菜单项,基于electron现有版本安全性的建议,此次的改造中主进程和渲染进程彼此语境隔离,通过预 ...
- 基于electron+vue+element构建项目模板之【改造项目篇】
1.概述 开发平台OS:windows 开发平台IDE:vs code 上一篇中已完成了electron-vue项目的创建,本篇章中则介绍在此项目基础上进行取消devtools的安装.项目结构的改造. ...