【性能测评】DSP库,MDK5的AC5,AC6,IAR和Embedded Studio的三角函数性能
测试条件:
1、IAR8.30开最高等级速度优化。
2、MDK5.27正式版使用AC5开最高等级优化3,开启时间优化,测试C标准库和微库MicroLib两种。
3、MDK5.27正式版使用AC6开最高等级的速度优化,测试C标准库和微库MicroLib两种。
4、Embedded Studio4.30版使用GCC开最高等级优化,开C库使用Fast模式。
5、Embedded Studio4.30版使用CLANG开最高等级优化,开C库使用Fast模式。
6、DSP库使用最新的CMSIS软件包里面的V5.6.0。
7、测试单位使用DWT时钟周期计数器。
8、DSP库使用函数arm_sin_f32测试,IAR,MDK和ES都使用各自带的C库测试。执行10次,求平均。
注意,IAR,MDK和ES都有各自的C库实现方案。

提供一个STM32H7的例程供大家测评:



1、MDK5 AC5 MicroLib
(1)DSP库函数第一次执行73个时钟周期,之后重复执行都是55个时钟周期左右。
(2)微库的sin函数259,之后重复执行是197个时钟周期左右。
2、MDK5 AC5 C Lib
(1)DSP库函数第一次执行71个时钟周期,之后重复执行都是55个时钟周期左右。
(2)C库的sin函数264,之后重复执行是200个时钟周期左右。
3、MDK5 AC6 MicroLib
(1)DSP库函数第一次执行81个时钟周期,之后重复执行都是58个时钟周期左右。
(2)C库的sin函数,使用DWT时钟周期计数器无法正常测量。
4、MDK5 AC6 C Lib
(1)DSP库函数第一次执行74个时钟周期,之后重复执行都是58个时钟周期左右。
(2)C库的sin函数,使用DWT时钟周期计数器无法正常测量。
5、IAR
(1)DSP库函数第一次执行83个时钟周期,之后重复执行都是58个时钟周期左右。
(2)C库的sin函数217,之后重复执行是194个时钟周期左右。
6、Embedded Studio GCC
(1)DSP库函数第一次执行79个时钟周期,之后重复执行都是49个时钟周期左右。
(2)C库的sin函数140,之后重复执行是129个时钟周期左右。
7、Embedded Studio CLANG
(1)DSP库函数第一次执行80个时钟周期,之后重复执行都是59个时钟周期左右。
(2)C库的sin函数141,之后重复执行是129个时钟周期左右。

MDK5的AC5开启的优化等级:

MDK5的AC6开启的优化等级:

MDK使用微库和C库通过这个对勾切换:

IAR开启的优化等级

Embedded Studio优化等级和C库选Fast模式



总结:
1、DSP库的三角函数计算在MDK,IAR和ES上的性能都差不多。
2、使用MDK的AC6时,使用DWT是周期计数器无法正常测量C库做三角函数运算的执行时间,时间非常短,感觉异常了,所以暂不加入比较。
3、MDK AC5和IAR的C库三角函数性能差不多,而ES的三角函数性能比较强劲,比MDK和IAR的强很多。
4、当前仅测试一个sin函数,后面有精力做一个全面的三角函数比较。
【性能测评】DSP库,MDK5的AC5,AC6,IAR和Embedded Studio的三角函数性能的更多相关文章
- 推荐一种非常好的新版DSP库源码移植方式,含V7,V6和V5的IAR以及MDK5的AC5和AC6版本
说明: 1.新版CMSIS V5.6里面的DSP库比以前的版本人性化了好多. 2.本帖为大家分享一种源码的添加方式,之前一直是用的库方便,不方便查看源码部分. 3.DSP教程可以还看第1版的,在我们的 ...
- TI的32位定点DSP库IQmath在H7和F4上的移植和使用
说明: 1.最近在制作第2版DSP教程,除了ARM家的,这次重点了解下载TI的DSP库,特此移植了一个TI的IQmath. 2.初次使用这个定点库,感觉在各种Q格式的互转,Q格式数值和浮点数的互转处理 ...
- 【玩转单片机系列002】 如何使用STM32提供的DSP库进行FFT
前些日子,因为需要在STM32F103系列处理器上,对采集的音频信号进行FFT,所以花了一些时间来研究如何高效并精确的在STM32F103系列处理器上实现FFT.在网上找了很多这方面的资料做实验并进行 ...
- SAM4E单片机之旅——24、使用DSP库求向量数量积
DSP(Digital Signal Processing,数字信号处理)中会使用大量的数学运算.Cortex-M4中,配置了一些强大的部件,以提高DSP能力.同时CMSIS提供了一个DSP库,提供了 ...
- Apache JMeter--网站自动测试与性能测评
Apache JMeter--网站自动测试与性能测评 2013-02-28 15:48:05 标签:Jmeter From:http://bdql.iteye.com/blog/291987 出于学习 ...
- STM32F4使用FPU+DSP库进行FFT运算的测试过程一
测试环境:单片机:STM32F407ZGT6 IDE:Keil5.20.0.0 固件库版本:STM32F4xx_DSP_StdPeriph_Lib_V1.4.0 第一部分:使用源码文件的方式,使 ...
- STM32F4使用FPU+DSP库进行FFT运算的测试过程二
原文地址:http://www.cnblogs.com/NickQ/p/8541156.html 测试环境:单片机:STM32F407ZGT6 IDE:Keil5.20.0.0 固件库版本:STM32 ...
- 基于HAL库的STM32的DSP库详解(附FFT应用)
1 . 建立工程,生成代码时选择包含所有库. 2. 打开 option for target 选择 Target 标签,在code generatio中,将floating point hardw ...
- 谷歌性能测评工具lighthouse使用
1.谷歌插件lighthouse的基本介绍 Lighthouse 是一个网站性能测评工具, 它是 Google Chrome 推出的一个开源自动化工具,能够对 PWA 和网页多方面的效果指标进行评测, ...
随机推荐
- __dict__和dir()的区别
__dict__和dir()的区别 dir() 一般用来查看模块的属性 __dict__从某方面上来说是dir()的子集 可以直接打印dir(),显示的是当前执行文件所有的属性 __dict__ __ ...
- 高并发编程-AQS深入解析
要点解说 AbstractQueuedSynchronizer简称AQS,它是java.util.concurrent包下CountDownLatch/FutureTask/ReentrantLock ...
- java 算法之 两个字符串中最大相同的子串
public class String_intern { public static void main(String[] args) { String old="aaaaabc1" ...
- Python-车牌识别
一.车牌识别系统的用途与技术车牌识别系统(Vehicle License Plate Recognition,VLPR) 是计算机视频图像识别技术在车辆牌照识别中的一种应用.车牌识别在高速公路车辆管理 ...
- mysql主从架构搭建
1.配置文件,开启二进制日志 vim /etc/my.cnf 在mysql下增加如下内容 server-id= log-bin=mysql-bin relay-log=mysql-relay 2.登录 ...
- 十一次作业——LL(1)文法的判断,递归下降分析程序
1. 文法 G(S): (1)S -> AB (2)A ->Da|ε (3)B -> cC (4)C -> aADC |ε (5)D -> b|ε 验证文法 G(S)是不 ...
- 全面认识 RUST -- 掌控未来的雷电
文章目录 RUST 简介 如何衡量语言的好坏? 静态语言 编译器 语言定位 代表性项目 Hello World RUST 前景 RUST 简介 Rust 是一种兼顾内存安全.高并发和稳定运行的编程语言 ...
- 使用 NTP/Chrony 同时 Centos7 网络时间
Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,提供高精准度的时间校正服务. 在 Centos ...
- centos使用yum存储快速安装MySQL
RHEL/CentOS 7.x MySQL yum库 https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm RHEL ...
- Use Swift Dynamic Framework (如何科学地引用第三方 Swift 库)
转自:http://andelf.github.io/blog/2014/07/07/use-swift-dynamic-library/ CocoaPods 由于完全使用静态链接解决方法,过度依赖 ...