【意外走向】大疆机甲大师Python API之八:计时——为性能测试展开1000次循环
发布日期:2021-06-29 15:29:04
浏览次数:3
分类:技术文章
本文共 1528 字,大约阅读时间需要 5 分钟。
为机甲的计时API写了如下例程,想对比一下PC上的Python性能(注:作为性能测试非常粗糙,因为主要是想作最简单的演示之用):
def 开始(): 工具.计时器(常量.开始) 总耗时 = 0 次数 = 0 while 次数 < 10: 算三角函数() 工具.计时器(常量.暂停) 总耗时 = 工具.累计计时() 次数 += 1 print(总耗时 / 次数)def 算三角函数(): 积 = 1.0 for 次数 in range(1, 1000): for 角度 in list(range(1, 360)): 弧度 = 数学.弧度(角度) 积 *= 数学.正弦(弧度)**2 + 数学.余弦(弧度)**2 return 积
因为在PC的运行时间很短,因此当机甲的控制台许久没打出结果的时候,小意外,于是测了求弧度和求平方和两句的分别耗时,结果,竟然瓶颈完全不在这。
排除法,只剩下了循环体本身(完整源码):
def 开始(): 工具.计时器(常量.开始) for 次数 in range(1, 501): if 次数 % 100 == 0: 工具.计时器(常量.暂停) print(str(次数) +": " + str(工具.累计计时()) + " seconds") 工具.计时器(常量.开始) 工具.计时器(常量.重置)
每100次空循环耗时0.56秒左右!虽然暂没写出实例,但这样的延时感觉会对运动控制算法产生不能忽视的影响。难怪上面的36万次循环会让它貌似宕机。
补:为避免循环体内的语句的影响,直接用pass,仍然一样,可见瓶颈在for循环:
大疆机甲大师Python中文编程:计时 -- 性能测试
试了while循环,也有类似延时。打算报告这个问题。
对比性能就不干了吗?决定还是继续试试。
于是,直接将两个循环展开,就是这样的上千行代码:
def 开始(): 总耗时 = 0 工具.计时器(常量.开始) 结果 *= 算三角函数() (真 -- 此处省去1000行代码) 结果 *= 算三角函数() 工具.计时器(常量.暂停) 总耗时 = 工具.累计计时() print(str(总耗时) + " seconds, result : " + str(结果))def 算三角函数(): 积 = 1.0 弧度 = 数学.弧度(1) 积 *= 数学.正弦(弧度)**2 + 数学.余弦(弧度)**2 弧度 = 数学.弧度(2) 积 *= 数学.正弦(弧度)**2 + 数学.余弦(弧度)**2 (真 -- 此处省去700行代码) 弧度 = 数学.弧度(358) 积 *= 数学.正弦(弧度)**2 + 数学.余弦(弧度)**2 弧度 = 数学.弧度(359) 积 *= 数学.正弦(弧度)**2 + 数学.余弦(弧度)**2 return 积
得出的结果还比较合理,不过也领教了移动计算平台和PC的差别。一方面有计算性能的差距:ARMv7-A Cortex A7 1.5 GHz(参考:)VS. Intel Core i7-2635QM @ 2.00GHz。另外,也许在编译器优化也有区别?
回头研究一下Python递归,虽然觉得例程里总用递归代替循环不现实。
转载地址:https://codeinchinese.blog.csdn.net/article/details/103050887 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月12日 05时51分14秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
讲真,如果手机有灵魂,那就是“备忘录”
2019-04-29
端到端加密:WhatsApp不会去读取你的信息,它不需要……
2019-04-29
国会大厦骚乱,与一家极不可靠的面部识别公司……
2019-04-29
解锁宇宙密码:为什么是3、6、9?
2019-04-29
数据可视化中的格式塔心理学
2019-04-29
电动汽车的“专属危险”:网络威胁问题不容小觑
2019-04-29
短暂的告别,马上再回来
2019-04-29
统治50年:为什么SQL在如今仍然很重要?
2019-04-29
测试是一场竞争,而数据每次都会获得胜利
2019-04-29
读心的测谎系统:究竟是骗子还是个天才?
2019-04-29
最大规模技术重建:数据库连接从15000个到100个以下
2019-04-29
复工之后:员工如何改善网络安全?
2019-04-29
70%求职者因此被拒,你还不避开这些“雷区”?!
2019-04-29
办法不在多,有用就行!用Dropout解决过度拟合问题
2019-04-29
色情演员识别?绝对是人脸识别最糟糕的应用……
2019-04-29
让强化学习逃离“乏味区域陷阱”,试着加点噪音吧!
2019-04-29
超详细Spring Boot面试问题集锦,死角一个不留!
2019-04-29
10个业余时间可完成的项目,助你飞速提升编码能力!
2019-04-29
最终榜单!2019年人工智能的15个热门趋势
2019-04-29
网络爬虫初涉——用python爬取网络小说
2019-04-29