2009-07-18 70 views
0

我们已经有一个相当大的应用程序运行在VxWorks 5.5.1上,这个应用程序现在已经开发和修改了大约10年。我们有一些简单的本土工具可以显示我们还没有使用太多太多内存或者太多太多处理器,但是我们对于我们实际拥有多少空间并没有很好的感觉。它开始难以估计未来的增强功能。分析VxWorks系统

有没有人有任何建议如何配置这样一个系统?让Wind River工具运行起来我们从未有过很多运气。

对于奖励积分:另一个复杂因素是我们的系统在不同的时间有非常不同的行为;在启动过程中,它做了很多事情,然后除了短暂的活动爆发之外,它比较空闲。如果有一个使用某种编程方式必须记录状态信息的探查器,我认为这也会非常有用。

FWIW,这是用gcc编译,并完全在C.

回答

3

我已经做了大量的各种软件的性能调整,包括嵌入式应用程序。我不会讨论记忆分析 - 我认为这是一个不同的问题。

我只能猜测“知名”的想法源于哪里,以找到性能问题,你需要测量各个部分的性能。这是一种自上而下的方式,类似于政府试图通过细分来控制预算浪费的方式。恕我直言,它不工作得很好。 您可以通过测量来确定您所做的是否有所作为,但在告诉您需要解决什么问题时效果并不理想。

什么是在告诉你什么来解决是一个自下而上的方法,在您检查的是花在什么微观单位的有代表性的样品,并找出的为什么每一个完整的解释正在度过。这适用于一个简单的统计原因。如果有一个原因可以节省一些百分比(例如40%)的样本,那么平均有40%的样本会显示它,并且它不需要大量的样本。它确实需要你仔细检查每一个样品,而不仅仅是将它们聚合成更大的束。作为一个历史的例子,这就是哈里杜鲁门在美国参与第二次世界大战爆发时所做的事情。国防工业浪费很大。他刚上车,开车到工厂,采访站在旁边的人。然后他回到美国参议院,解释了问题究竟是什么,并解决了问题。

也许这是比你想要的更多的答案。具体而言,this is the method I usethis is a blow-by-blow example of it

添加:我猜想通过测量找到的想法是很自然的。大约'82我正在研究一个嵌入式系统,我需要做一些性能调优。硬件工程师提供了一个我可以读取的板子上的定时器(从他的大量提供)。他认为,他认为发现性能问题需要时间。我感谢他并拒绝了,因为那时我知道并且信任随机停止技术(用电路内仿真器完成)。

0

我已经在使用基于taskSwitchHookAdd和相关的功能(删除钩等)在当地建造的监控实用程序,有运气系统工作编写的。

“简单地”使用它来跟踪给定任务运行的滴答数。我意识到这是用于分析的相当大规模的信息,但根据您的需求它可能会有用。

要查看每个任务正在使用多少CPU,请计算分配给每个任务的刻度的百分比。

要查看您拥有多少空间,请添加一个只执行“while(1){}”的最低优先级“空闲”任务,并查看它分配给它的CPU数量。粗略地说,这是你的空间。

1

如果有辅助时钟可用,你可以使用间谍工具(通过在config.h文件中配置),这确实这些任务所使用的CPU给你一个非常粗略的估计。

关于它的好处是,它不需要被连接到Tornado环境下,您可以从内核外壳使用它。

否则,使用taskHookAdd的btpierre的建议已成功在过去使用。