预订演示
前页 后页

剖析

在软件应用程序的生命周期中,调查确定执行速度低于预期的应用程序任务的情况并不少见。您可能还只是想知道当您“按下此按钮”时发生了什么!您可以使用Enterprise Architect的 Profiler 快速解决此问题。结果通常可以在几秒钟内产生,您将很快能够看到正在使用应用程序的操作和所涉及的功能。在特征执行分析器中,特征采用了两个独立的策略;进程执行过程中的采样进程。一种方法是定期采集样本以识别 CPU 密集型模式,而另一种方法是连接进程以记录对内存的需求。分析数据以产生加权调用图。行为通常可识别为图中的根(入口点),或这些点附近的分支。所有报告都可以按需审查。它们可以在模型中保存为文件,作为工件和团队图书馆发布。

访问

功能区

执行 > 工具 > 探查器

其它

执行分析器工具栏:分析器窗口|探查器

调用抽样

Profiling interface in Enterprise Architect

Profiler 使用其工具栏按钮进行控制。在这里,您可以将 Profiler 附加到现有进程(或 JVM),或为活动的分析器脚本应用程序。 Profiler 窗口显示目标进程的详细信息,因为它被分析。这些详细信息提供反馈,让您查看采集的样本数量。您还可以选择暂停和恢复捕获、清除捕获的数据和生成报告。您可以通过暂停捕获来访问报告特征- 在数据捕获过程中报告特征被禁用。

加权调用图

该详细报告将调用堆栈/行为的唯一集合显示为加权调用图。每个分支的权重由命中计数来描述,该计数是该分支的总命中加上从该点开始的所有分支。通过跟踪命中轨迹,您可以快速识别在捕获期间占用程序最多的代码区域。

堆栈配置

The Stack Profile is not sampled, but shows every instance of a particular call stack as individual lines in a graph.

堆栈Profiles用于发现在程序运行期间调用特定函数的不同方式(堆栈)和方式计数。与其他分析器模式不同,此配置文件是通过使用配置文件点激活的,这是一种特殊的断点标记。标记像任何其他断点一样设置在源代码中。当程序遇到断点时,堆栈被捕获。当您稍后生成报告时,会分析堆栈并生成加权调用图。该图显示了在分析器运行期间该函数所涉及的唯一堆栈,“命中计数”列表示相同堆栈发生的次数。

A source code marker used to drive profiling in Enterprise Architect

内存Profiles

Memory profiling interface in Enterprise Architect

内存配置跟踪分配,忽略内存何时释放。它使用此信息来评估执行代码对内存的需求,而不是内存量,而是需求频率。 Allocations数字是请求的内存分配总数。 Stack Holdings是在那些时间进行的堆栈跟踪的数量,而Heap Holding数字是这些调用获得的内存总量。注记可以按需打开和关闭分析。由于不涉及任何链接,因此也无需重建程序以使其正常工作。

内存图

此示例是根据 Apache 的 Xerces 项目中的演示程序分析生成的报告。该程序对提供的 XML 文件的文档物件模型(DOM) 进行迭代。

函数总结报告

此摘要报告列出了函数,并且仅列出了在样本期间执行的函数。函数按总调用次数列出,其中在单独的调用堆栈中出现两次的函数出现在仅出现一次的函数之前。

函数线报告

此详细报告逐行显示函数的源代码,并在其旁边显示每个函数的总执行次数。我们使用这份报告发现了代码,该代码暴露了代码中似乎从未执行过的 case 语句。

支持

Profiler 支持以 C、C++、Visual Basic、 Java和 Microsoft .NET语言编写的程序。内存分析目前可用于本机 C 和 C++ 程序。

注记

  • Profiler 在Enterprise Architect专业版及以上版本中可用
  • Profiler 也可以在WINE (Linux 和 Mac)下用于对WINE环境中部署的标准窗口应用程序进行分析