nordic对苹果性能测试
环境:
app采用nrf connect或lightblue均可;
nordic从端采用nrf52840开发板pca10056;
说明与规定:
(1)鉴于手机app无法主动连续快速发送多包数据,故只测试了上行数据,即nordic从端notify发送给苹果手机数据,连续发送1000包。但一般BLE上行和下行速率基本一致,所以手机发送的速率应和nordic发送给手机的速率应该是一致的。
(2)苹果8及以上的手机支持蓝牙5.0,这之前的手机硬件不支持蓝牙5.0;
(3)看最大通讯速率值时,不包括空闲部分的时间,例如下图:
蓝色A到B的时间约为7.5ms,传输了297字节,所以速率为297/7.5=39.6KB/s;图中显示为41.1KB/s这是没问题的。
至于粉色部分,为连接间隔30ms,也传输了297字节,所以通讯速率为297/30 = 9.9KB/s,但是图中也显示41.1KB/s,所以这里不是指的这30ms的平均速率
,而是指的那7.5ms的最大速率值。
测试结果:
(1)苹果8,苹果X 和 苹果XS max在蓝牙4.0和蓝牙5.0下通信速率比较:
蓝牙4.0通讯时的截图(一个连接事件最大11包):
蓝牙5.0时的截图(一个连接事件最大6包):
蓝牙4.0截取较长一段时间的数据计算平均速率,约为8.42KB/s:
蓝牙5.0截取较长一段时间的数据计算平均速率,约为32.4KB/s:
(2)苹果6最大速率:
通讯截图(一个连接事件最大6包):
截取较长一段时间的测试数据(速率约为4.75KB/s):
综上所述:
苹果8以下的蓝牙4.0的手机实际平均速率约为:4.75KB/s;
苹果8及以上手机按照蓝牙4.0速率通讯时,实际平均速率约为:8.42KB/s,性能有所提高(一个连接事件增加了11-6=5包);
苹果8及以上手机按照蓝牙5.0速率通讯时,实际平均速率约为:32.4KB/s,性能有大幅提升;
测试中遇到的问题:
1. 使用nrf connect app测试,一旦启动从端发送,则app可能会崩溃或者闪退,需要重启app才能进行下一次测试。
2. iphone7无法通过nrf connect 读取设备的service list,故无法使用它完成测试。
nordic对苹果性能测试的更多相关文章
- 苹果 M1 芯片 OpenSSL 性能测试
Apple M1(MacBook Air 2020) type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes md2 0.00 0.00 0.00 ...
- 苹果强制使用HTTPS传输了怎么办?——关于HTTPS,APP开发者必须知道的事
WeTest 导读 2017年1月1日起,苹果公司将强制使用HTTPS协议传输.本文通过对HTTPS基础原理和通信过程内容的讲解,介绍APP开发者在这个背景下的应对办法. 几周前,我们在<htt ...
- Nordic nRF51/nRF52开发环境搭建
本文将详述Nordic nRF51系列(包括nRF51822/nRF51802/nRF51422等)和nRF52系列(包括nRF52832/nRF52810/nRF52840)开发环境搭建. 1. 强 ...
- Locust性能测试学习总结
Locust学习总结分享 简介: Locust是一个用于可扩展的,分布式的,性能测试的,开源的,用Python编写框架/工具,它非常容易使用,也非常好学.它的主要思想就是模拟一群用户将访问你的网站.每 ...
- [原创]App性能测试指标篇
[原创]App性能测试指标篇 目前由于苹果,三星等大厂对智能手机的研发及投入,使的智能手机发展非常迅速,每个人手中都有一些离不开生活的App,如:微信,微博,百度或是各游戏App等,但是到底App性能 ...
- Android性能测试框架Emmagee
目前移动设备,尤其是Android设备,相对于过去的J2me时代,硬件有大幅度的提高,并且更新地非常快,可以安装和运行更多的应用. 但是目前安卓市场对于应用的要求并不如苹果商店那么严格,Android ...
- Nordic nRF5 SDK和softdevice介绍
SDK和Softdevice的区别是什么?怎么选择SDK和softdevice版本?芯片,SDK和softdevice有没有版本兼容问题?怎么理解SDK目录结构?SDK帮助文档在哪里?Softdevi ...
- Android性能测试 | 启动时间篇
[转载]原文地址:http://www.51testing.com/html/93/n-3724593.html 背景介绍 Android用户也许会经常碰到以下的问题: 1)应用后台开着,手机很快没电 ...
- 毕业两年做到测试经理的经历总结- 各个端的自动化,性能测试结合项目具体场景实战,分析客户反馈的Bug
前言 最近看到行业的前辈都分享一些过往的经历来指导我们这些测试人员,我很尊敬我们的行业前辈,没有他们在前面铺路,如今我们这帮年轻的测试人估计还在碰壁或摸着石头过河,结合前辈们的经验,作为年轻的测试人也 ...
随机推荐
- 使用TensorFlow进行中文自然语言处理的情感分析
1 TensorFlow使用 分析流程: 1.1 使用gensim加载预训练中文分词embedding 加载预训练词向量模型:https://github.com/Embedding/Chinese ...
- [javaSE] IO流(FIle对象递归文件列表)
获取File对象,new出来,构造参数:String目录名 调用File对象的list()方法,获取String[]数组文件名称 循环数组,列出所有文件包含隐藏文件 递归列出所有的数据 定义一个静态方 ...
- 用户登录注册(安全)(常规、FB、google、paypal) 实战
/* 用户登录界面 */elseif ($action == 'login'){ if($_SESSION['user_id']) { ecs_header("Lo ...
- 10、springboot之集成druid
在pom.xml中添加 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid< ...
- git杂记-分支简介
分支创建 //只创建分支不切换: $ git branch testing //创建并切换分支$ git checkout -b iss53 查看各个分支的指向对象 $ git log --oneli ...
- MD5计算器
private void radioBtnFlie_CheckedChanged(object sender, EventArgs e) { RadioButton rb = sender as Ra ...
- bootstrap 的模态框的宽与高设置
1,改变bootstrap 的宽与高, 将style=“height:900px”放在<div class = "modal-dialog">或者更外层上,整个模态框的 ...
- C#代码处理网页关于登录的code
作者:血饮狂龙链接:https://www.zhihu.com/question/49452639/answer/117294801来源:知乎著作权归作者所有,转载请联系作者获得授权. private ...
- 【QT】在子窗体中控制父窗体
[背景说明]我的主窗体的名字叫做MainWindow,其子窗口是一个叫subDialog的类.我现在想做的是在子窗口的函数中调用父窗口. 在父窗口中打开子窗口 //弹出对话框确定变换的参数 subDi ...
- 毕向东_Java基础视频教程第19天_IO流(18~19)
第19天-18-IO流(流操作规律 - 1) 通过三个步骤来明确"流操作"的规律: 明确数据流的"源和目的" 源, 输入流: InputStream/Reade ...