首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分析和提高嵌入式系统性能的步骤/策略是什么?

分析和提高嵌入式系统性能的步骤/策略是什么?
EN

Stack Overflow用户
提问于 2010-08-06 09:01:11
回答 5查看 1.7K关注 0票数 5

我将把这个问题分解成子问题。我很困惑,我是应该分开问他们,还是用一个问题问他们。所以我只想问一个这样的问题。

  1. 分析和提高C应用程序性能的一般步骤是什么?
  2. 如果我正在为嵌入式系统开发,这些步骤会改变吗?
  3. 有什么工具可以帮助我?

最近,我被赋予了一个任务来提高我们的产品在ARM11平台上的性能。我对嵌入式系统这一领域还比较陌生,需要这里的专家来帮助我。

EN

回答 5

Stack Overflow用户

发布于 2010-08-06 09:48:10

  1. 代码审查: 什么是好的代码评审技术? 对代码进行静态和动态分析。 静态分析工具:麻雀,预防,Klockworks 动态分析工具:瓦兰净化 格罗夫允许您了解您的程序在何处花费时间,以及哪些函数在执行过程中调用了哪些其他函数。
  2. 步骤是一样的
  3. 除了列出的第一点外,还有一些像模件检查等工具。有一个基于平台的大列表这里
票数 1
EN

Stack Overflow用户

发布于 2010-08-06 11:33:58

哎呀!!一个很大的问题!

分析和提高C应用程序性能的一般步骤是什么?

除了这里提到的其他静态代码分析器外,还有一个称为PC-Lint的相当便宜的版本,它已经存在了很长时间。有时会为一个错误抛出大量的错误和警告,但到了最后,您会很高兴,并且因为它而对C/C++有更多的了解。

使用所有的代码分析器,一些问题对代码来说可能更具有结构性,所以最好从编码的第一天开始分析它;对旧软件运行分析可能会让您遇到一些问题,这些问题可能需要一段时间才能解决,最好从一开始就保持它的干净。

但是,代码分析器不会捕获所有的逻辑错误,也就是说,它不会执行您希望它做的事情!最好的方法是先进行代码评审,然后进行测试。通过尽量保持算法的简单性,在循环中保持指令紧密,可能是展开循环(您的编译器优化可能做到这一点),在访问数据时使用快速缓存,从而提高性能。

代码评审可以从许多其他人的目光中提出很多问题。不要有太多的人,如果可能的话,试着找另外三个人,有时候初级开发人员会问一些最有洞察力的问题,比如:“我们为什么要这么做?”

测试可以大致分为两部分,自动测试和手动测试。自动化测试需要为函数/单元生成测试处理程序,但是一旦运行就可以一次又一次地运行。手动测试需要有计划、自律来按照要求执行它们,想象出可能会影响性能的场景,并且必须要注意(您可能已经通过了测试,但是范围跟踪在测试之前/之后有一点异常)。

“如果我正在为嵌入式系统开发,这些步骤会改变吗?”

性能分析在嵌入式系统上可能与应用系统不同;使用" embedded“现在涵盖的非常广泛的画笔,这取决于您是如何以硬件为中心的。这可以使用分析器来完成,如果您想要一种更便宜和更chearful的方法,那么可以使用测试输出引脚来度量代码的部分,或者在开发环境中的模拟器上使用断点来测量它们。

确保不仅测量了一个典型的任务长度,而且还测量了一个最大长度,因为在那里,一个任务可能会开始妨碍其他任务,而您的计划任务没有及时完成。

有什么工具可以帮助我?

IDE上的模拟器、静态分析工具、动态分析工具,但最重要的是,您和其他人都能正确地完成需求、正确地检查(代码和测试)和彻底的测试(自动化和手动)。

祝好运!

票数 1
EN

Stack Overflow用户

发布于 2010-08-06 11:42:11

我的经历。

  1. 函数调用很慢,使用宏或内联方法消除。请查看反汇编程序列表。
  2. 如果使用GCC,用#pragma GCC optimize("O3")标记优化部分或单独编译。
  3. 使用不同的组合应用内联属性(基本上在大小和速度之间找到一个平衡)。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3422326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档