对 API 函数的描述如下所示。
C 和 C++:collector_sample(char *name)
Fortran:collector_sample(string name)
Java:CollectorAPI.sample(String name)
记录样本包并用指定的名称或字符串标记该样本。该标签显示在性能分析器的“事件”标签中。Fortran 参数 string 的类型为 character。
样本点包含进程(而不是单独的线程)的数据。在多线程应用程序中,如果在 collector_sample() API 函数记录样本时发生另一个调用,则该函数可确保只写入一个样本。所记录的样本数可能会少于发出该调用的线程数。
性能分析器不对由不同机制记录的样本进行区分。如果只想查看 API 调用所记录的样本,则应当在记录性能数据时关闭所有其他抽样模式。
C、C++ 和 Fortran:collector_pause()
Java:CollectorAPI.pause()
停止将特定于事件的数据写入实验。实验将保持打开状态,并将继续写入全局数据。如果没有活动的实验或者已经停止记录数据,则该调用将被忽略。该函数停止写入所有特定于事件的数据,即使它是由 collector_thread_resume() 函数针对特定线程启用的也是如此。
C、C++ 和 Fortran:collector_resume()
Java:CollectorAPI.resume()
在调用 collector_pause() 之后恢复将特定于事件的数据写入实验。如果没用活动的实验或数据记录功能处于活动状态,则该调用将被忽略。
C、C++ 和 Fortran:collector_terminate_expt()
Java:CollectorAPI.terminate