![]() |
1
3
我已经对各种软件进行了很多性能调整,包括嵌入式应用程序。我不会讨论内存分析——我认为这是另一个问题。 我只能猜测“众所周知”的想法是从哪里产生的,为了找到性能问题,您需要测量各个部分的性能。这是一种自上而下的方法,类似于政府试图通过细分来控制预算浪费。嗯,它不太管用。 测量可以看出你所做的是否有所不同,但它不擅长告诉你要修复什么。 是什么 好的 告诉你要修复什么是一种自下而上的方法,在这种方法中,你要检查一个代表性的微观单位的样本,了解正在使用的是什么,并找出完整的解释 为什么? 每个人都在花钱。这是因为一个简单的统计原因。如果有理由保存百分之四十(例如40%)的样本,平均40%的样本会显示出来,而且不需要大量的样本。它确实要求您仔细检查每个样本,而不仅仅是将它们聚合成更大的束。 作为一个历史性的例子,这就是哈里·杜鲁门在美国卷入二战爆发时所做的。国防工业浪费惨重。他刚上车,开车去工厂,采访了周围的人。然后他回到美国参议院,解释了问题的具体内容,并把问题解决了。 也许这是一个比你想要的答案。明确地, this is the method I use 和 this is a blow-by-blow example of it . 补充:我想通过测量来发现的想法是很自然的。大约在82年,我在一个嵌入式系统上工作,我需要做一些性能调整。硬件工程师提议在板上安装一个我可以阅读的计时器(从他的大量资料中提供)。他认为发现绩效问题需要时间安排。我感谢他并拒绝了,因为那时我已经知道并信任了随机停止技术(用一个在线仿真器完成)。 |
![]() |
2
1
如果您有可用的辅助时钟,您可以使用spy实用程序(可通过config.h文件配置),它可以给您一个非常粗略的近似值,说明哪些任务正在使用CPU。 它的好处在于它不需要连接到Tornado环境,您可以从内核外壳使用它。 否则,Btpierre关于使用taskHookAdd的建议在过去已经成功使用。 |
![]() |
3
0
我曾在一些系统上工作过,这些系统很幸运地使用了基于taskswitchhookeadd和相关功能(delete hook等)的本地监控实用程序。 “简单”使用此项跟踪给定任务运行的计时周期数。我认识到这是一个相当粗略的分析信息,但根据您的需要,它可能是有用的。 要查看每个任务使用多少CPU%,请计算分配给每个任务的刻度百分比。 要查看有多少可用空间,请添加一个最低优先级的“空闲”任务,该任务只执行“while(1)”,并查看分配给它的CPU百分比。粗略地说,那是你的净空。 |
![]() |
KWMuller · 如何在Netbeans中访问调用计数? 7 年前 |
![]() |
Tim · 测量所有目标(包括相关目标)的xcodebuild持续时间 7 年前 |
![]() |
Bram · 如何启动和停止性能采样 7 年前 |
![]() |
GoodGoodMan · 如何测量C代码中方法的cpu和内存使用率 7 年前 |
![]() |
JumpingJezza · 读取2D矩阵的最快方法 7 年前 |
![]() |
Mayank · 作为后台服务运行的行分析python代码 8 年前 |