spot [ options ] [ target target-args | -p pid ]
spot 命令可对目标应用程序运行一组性能工具,并将输出呈现为一组超链接的网页。可通过两种方式使用 spot:
spot 连接到正在运行的进程,并使用各种探测器从正在运行的进程收集数据。
应用程序运行多次,每次在不同的探测器下运行。所以,应用程序有必要能够在没有用户干预的情况下运行多次。
spot 生成的网页记录以下信息(如果有)。
收集实验所在系统的相关信息
有关如何生成应用程序的信息
CPU 在应用程序运行期间所记录的性能计数器事件。该数据可用于指示导致较长延迟时间的事件类型。
这表示应用程序执行的混合指令(仅限 SPARC)。
该数据来自 collect 命令,该命令将返回在各个例程中所花费的时间量。该数据使用 er_html 呈现出来。
collect 命令用于根据造成最长延迟时间的性能计数器事件分析应用程序。生成的分析指示程序中发生延迟事件的位置。该数据使用 er_html 呈现出来。
该数据指示调用每个例程的频率以及调用例程中每个指令的频率(仅限 SPARC)。
所有正在运行的进程的系统范围带宽利用率的相关数据。无法确定占用带宽的特定进程,除非该进程是某一时间唯一的一个活动进程。仅当用户具有适当的权限来访问系统范围的性能计数器时,才能收集该数据。(仅适用于 SPARC)。
程序运行期间遇到的陷阱数的相关数据。仅当用户具有适当的权限来访问 trapstat 数据时,才能获得该信息(仅限 SPARC)。
如果路径上有 gnuplot,则可以获得其他图形,它们显示了一段时间内发生的各种事件。
如果不带参数调用,将输出用法消息。如果未在系统上安装 /bin/perl,尽管是缺少 perl 而非 spot,运行也会失败并显示消息:"spot: Command not found"。如果系统上的 perl 版本不够新,则 spot 可能会失败并显示有关未定义变量的消息。
为 spot 使用的 Oracle Solaris Studio 组件指定一个路径。如果 Oracle Solaris Studio 和 spot 都安装在缺省位置,则 spot 可以找到所需的组件。但是,如果其中任意一项安装在不同位置,则可使用该选项指定路径。如果用户要覆盖缺省编译器并使用在与缺省位置不同的位置安装的编译器,该选项也很有用。
设置要输出的调试信息的级别。缺省值为 1。设置为 0 表示 spot 没有输出,设置为 2 表示输出所有调试信息。调试输出可在完成的报告中的 debug.log 中获得。
将 spot 的输出放到指定目录的子目录中。如果未指定,缺省设置是将数据放到当前目录中。
输出帮助信息。
将 spot 的输出放到名为 name<n> 的指定子目录中,其中 n 是未使用的第一个名称。如果指定了名称,它可以采用任何形式,前提是在调用 spot 时该目录不存在。如果未指定名称,则 spot 缺省使用 spot_run<n>
将 spot 连接到正在运行的进程并生成报告。
抑制所有 spot 输出。(等效于 -D 0)
仅当 spot 连接到正在运行的进程时,该选项才有效。它可设置每个探测器应该在多少秒内连接到进程。缺省值为 300 秒(5 分钟)。
输出当前版本。不再检查任何参数,也不执行进一步的处理。
输出当前版本和正在运行的转换的更多详细的调试信息。(等效于 -D 2)
该选项将使 spot 尝试收集有关应用程序性能的扩展信息。它将使用 ripc 识别为整体延迟时间重大促成因素的性能计数器,收集应用程序的硬件计数器分析。如有可能,还会收集带宽和陷阱数据;用户需要具有适当的权限才能收集带宽和陷阱数据。
analyzer (1) 、 collect (1) 、 er_archive (1) 、 er_cp (1) 、 er_export (1) 、 er_html (1) 、 er_mv (1) 、 er_print (1) 、 er_rm (1) 、 er_src (1)
性能分析器手册