Sun Studio 12:Fortran 用户指南

3.4.83 –pg

为使用 gprof 配置程序进行文件配置而编译。

-p 的方式编译自配置代码,但调用一种运行时记录机制,该机制可保存更广泛的统计信息并在程序正常终止时生成 gmon.out 文件。通过运行 gprof 生成执行配置文件。有关详细信息,请参见 gprof(1) 手册页和《Fortran 编程指南》。

库选项必须跟在源文件和 .o 文件后面–pg 库是静态的)。


注 –

如果指定了 -pg,则使用 -xprofile 进行编译并无优势。这两个功能中的任一功能不会准备或使用由另一个功能提供的数据。


使用 prof(1) 或 gprof(1)(在 64 位 Solaris 平台上)或者仅使用 gprof(在 32 位 Solaris 平台上)生成的配置文件中包括大致的用户 CPU 时间。这些时间来自主可执行文件中的例程以及共享库中例程(链接可执行文件时将共享库指定为链接程序参数)的 PC 示例数据(请参见 pcsample(2))。其他共享库(在进程启动后使用 dlopen(3DL) 打开的库)不进行文件配置。

在 32 位 Solaris 系统中,使用 prof(1) 生成的配置文件仅限于可执行文件中的例程。通过将可执行文件与 -pg 链接并使用 gprof(1),可以对 32 位共享库进行文件配置。

Solaris 10 软件不包括使用 -p 编译的系统库。因此,在 Solaris 10 平台上收集的配置文件不包含系统库例程的调用计数。

不应当使用编译器选项 -p-pg-xpg 来编译多线程程序,因为这些选项的运行时支持不是线程安全的。如果利用这些选项来编译使用多个线程的程序,则可能会在运行时产生无效结果或段故障。

如果在不同的步骤中进行编译和链接,并使用 -pg 进行编译,请确保使用 -pg 进行链接。