代码之家  ›  专栏  ›  技术社区  ›  Chris Arguin

分析VxWorks系统

  •  0
  • Chris Arguin  · 技术社区  · 16 年前

    我们在VxWorks5.5.1上运行了一个相当大的应用程序,它已经开发和修改了大约10年。我们有一些简单的自制工具来证明我们没有使用 大量记忆或 处理器很多,但我们并没有很好的感觉我们实际有多少空间。现在开始很难对未来的增强进行评估。

    有人对如何描述这样一个系统有什么建议吗?我们从未有过多少运气让风河工具工作。

    加分:另一个复杂的问题是,我们的系统在不同的时间有非常不同的行为;在启动过程中,它做了很多事情,然后它相对闲置,除了短暂的活动爆发。如果有一个分析器必须以某种编程方式来记录状态信息,我认为这也非常有用。

    fwiw,这是用gcc编译的,完全用c编写。

    3 回复  |  直到 16 年前
        1
  •  3
  •   Community CDub    8 年前

    我已经对各种软件进行了很多性能调整,包括嵌入式应用程序。我不会讨论内存分析——我认为这是另一个问题。

    我只能猜测“众所周知”的想法是从哪里产生的,为了找到性能问题,您需要测量各个部分的性能。这是一种自上而下的方法,类似于政府试图通过细分来控制预算浪费。嗯,它不太管用。 测量可以看出你所做的是否有所不同,但它不擅长告诉你要修复什么。

    是什么 好的 告诉你要修复什么是一种自下而上的方法,在这种方法中,你要检查一个代表性的微观单位的样本,了解正在使用的是什么,并找出完整的解释 为什么? 每个人都在花钱。这是因为一个简单的统计原因。如果有理由保存百分之四十(例如40%)的样本,平均40%的样本会显示出来,而且不需要大量的样本。它确实要求您仔细检查每个样本,而不仅仅是将它们聚合成更大的束。

    作为一个历史性的例子,这就是哈里·杜鲁门在美国卷入二战爆发时所做的。国防工业浪费惨重。他刚上车,开车去工厂,采访了周围的人。然后他回到美国参议院,解释了问题的具体内容,并把问题解决了。

    也许这是一个比你想要的答案。明确地, this is the method I use this is a blow-by-blow example of it .

    补充:我想通过测量来发现的想法是很自然的。大约在82年,我在一个嵌入式系统上工作,我需要做一些性能调整。硬件工程师提议在板上安装一个我可以阅读的计时器(从他的大量资料中提供)。他认为发现绩效问题需要时间安排。我感谢他并拒绝了,因为那时我已经知道并信任了随机停止技术(用一个在线仿真器完成)。

        2
  •  1
  •   Benoit    16 年前

    如果您有可用的辅助时钟,您可以使用spy实用程序(可通过config.h文件配置),它可以给您一个非常粗略的近似值,说明哪些任务正在使用CPU。

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

    否则,Btpierre关于使用taskHookAdd的建议在过去已经成功使用。

        3
  •  0
  •   bstpierre Edgar Aviles    16 年前

    我曾在一些系统上工作过,这些系统很幸运地使用了基于taskswitchhookeadd和相关功能(delete hook等)的本地监控实用程序。

    “简单”使用此项跟踪给定任务运行的计时周期数。我认识到这是一个相当粗略的分析信息,但根据您的需要,它可能是有用的。

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

    要查看有多少可用空间,请添加一个最低优先级的“空闲”任务,该任务只执行“while(1)”,并查看分配给它的CPU百分比。粗略地说,那是你的净空。