<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/features.dtrace.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'zh',
  ),
  'this' => 
  array (
    0 => 'features.dtrace.introduction.php',
    1 => 'PHP 和 DTrace 介绍',
    2 => 'PHP 和 DTrace 介绍',
  ),
  'up' => 
  array (
    0 => 'features.dtrace.php',
    1 => 'DTrace 动态跟踪',
  ),
  'prev' => 
  array (
    0 => 'features.dtrace.php',
    1 => 'DTrace 动态跟踪',
  ),
  'next' => 
  array (
    0 => 'features.dtrace.dtrace.php',
    1 => '使用 PHP 和 DTrace',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'zh',
    'path' => 'features/dtrace.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="features.dtrace.introduction" class="sect1">
  <h2 class="title">PHP 和 DTrace 介绍</h2>

  <p class="para">
   包括 Solaris，macOS，Oracle Linux 和 BSD 在内的很多操作系统
   都提供了 DTrace 跟踪调试框架，它永远可用，并且额外消耗极低。
   DTrace 可以跟踪操作系统行为和用户程序的执行情况。
   它可以显示参数值，也可以用来分析性能问题。
   用户可以使用 DTrace D 脚本语言创建脚本文件来监控探针，进而高效分析数据指针。
  </p>

  <p class="para">
   除非用户使用 DTrace D 脚本激活并监控 PHP 探针，否则它并不会运行，所以不会给正常的应用执行带来任何性能损耗。
   即使 PHP 探针被激活，它的消耗也是非常低的，甚至可以直接在生产系统中使用。
  </p>

  <p class="para">
   在运行时可以激活 PHP “用户级静态定义跟踪”（USDT）探针。
   举例说明，如果 D 脚本正在监控 PHP <code class="literal">function-entry</code> 探针，
   那么，每当 PHP 脚本函数被调用的时候，这个探针将被触发，同时 D 脚本中所关联的动作代码将被执行。
   在脚本的动作代码中，可以打印出诸如函数所在源文件等信息的探针参数，
   也可以记录诸如函数执行次数这样的聚合数据。
  </p>

  <p class="para">
   这里仅描述了 PHP USDT 探针。请参考各操作系统文档中关于 DTrace 的部分获取更多信息，
   例如，如何使用 DTrace 跟踪函数调用，如何跟踪操作系统行为等。
   需要注意的是，不同平台提供的 DTrace 功能并不完全相同。
  </p>

  <p class="para">
   在某些 Linux 发行版中，可以使用 SystemTap 工具来监控 PHP DTrace 静态探针。
  </p>
 </div><?php manual_footer($setup); ?>