Sophie

Sophie

distrib > Fedora > 17 > i386 > by-pkgid > 675c8c8167236dfcf8d66da674f931e8 > files > 1507

erlang-doc-R15B-03.3.fc17.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns:fn="http://www.w3.org/2005/02/xpath-functions">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../../doc/otp_doc.css" type="text/css">
<title>Erlang -- cprof</title>
</head>
<body bgcolor="white" text="#000000" link="#0000ff" vlink="#ff00ff" alink="#ff0000"><div id="container">
<script id="js" type="text/javascript" language="JavaScript" src="../../../../doc/js/flipmenu/flipmenu.js"></script><script id="js2" type="text/javascript" src="../../../../doc/js/erlresolvelinks.js"></script><script language="JavaScript" type="text/javascript">
            <!--
              function getWinHeight() {
                var myHeight = 0;
                if( typeof( window.innerHeight ) == 'number' ) {
                  //Non-IE
                  myHeight = window.innerHeight;
                } else if( document.documentElement && ( document.documentElement.clientWidth ||
                                                         document.documentElement.clientHeight ) ) {
                  //IE 6+ in 'standards compliant mode'
                  myHeight = document.documentElement.clientHeight;
                } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
                  //IE 4 compatible
                  myHeight = document.body.clientHeight;
                }
                return myHeight;
              }

              function setscrollpos() {
                var objf=document.getElementById('loadscrollpos');
                 document.getElementById("leftnav").scrollTop = objf.offsetTop - getWinHeight()/2;
              }

              function addEvent(obj, evType, fn){
                if (obj.addEventListener){
                obj.addEventListener(evType, fn, true);
                return true;
              } else if (obj.attachEvent){
                var r = obj.attachEvent("on"+evType, fn);
                return r;
              } else {
                return false;
              }
             }

             addEvent(window, 'load', setscrollpos);

             //--></script><div id="leftnav"><div class="innertube">
<img alt="Erlang logo" src="../../../../doc/erlang-logo.png"><br><small><a href="users_guide.html">User's Guide</a><br><a href="index.html">Reference Manual</a><br><a href="release_notes.html">Release Notes</a><br><a href="../pdf/tools-2.6.8.pdf">PDF</a><br><a href="../../../../doc/index.html">Top</a></small><p><strong>Tools</strong><br><strong>Reference Manual</strong><br><small>Version 2.6.8</small></p>
<br><a href="javascript:openAllFlips()">Expand All</a><br><a href="javascript:closeAllFlips()">Contract All</a><p><small><strong>Table of Contents</strong></small></p>
<ul class="flipMenu">
<li id="no" title="cover " expanded="false">cover<ul>
<li><a href="cover.html">
                  Top of manual page
                </a></li>
<li title="start-0"><a href="cover.html#start-0">start/0</a></li>
<li title="start-1"><a href="cover.html#start-1">start/1</a></li>
<li title="compile-1"><a href="cover.html#compile-1">compile/1</a></li>
<li title="compile-2"><a href="cover.html#compile-2">compile/2</a></li>
<li title="compile_module-1"><a href="cover.html#compile_module-1">compile_module/1</a></li>
<li title="compile_module-2"><a href="cover.html#compile_module-2">compile_module/2</a></li>
<li title="compile_directory-0"><a href="cover.html#compile_directory-0">compile_directory/0</a></li>
<li title="compile_directory-1"><a href="cover.html#compile_directory-1">compile_directory/1</a></li>
<li title="compile_directory-2"><a href="cover.html#compile_directory-2">compile_directory/2</a></li>
<li title="compile_beam-1"><a href="cover.html#compile_beam-1">compile_beam/1</a></li>
<li title="compile_beam_directory-0"><a href="cover.html#compile_beam_directory-0">compile_beam_directory/0</a></li>
<li title="compile_beam_directory-1"><a href="cover.html#compile_beam_directory-1">compile_beam_directory/1</a></li>
<li title="analyse-1"><a href="cover.html#analyse-1">analyse/1</a></li>
<li title="analyse-2"><a href="cover.html#analyse-2">analyse/2</a></li>
<li title="analyse-2"><a href="cover.html#analyse-2">analyse/2</a></li>
<li title="analyse-3"><a href="cover.html#analyse-3">analyse/3</a></li>
<li title="analyse_to_file-1"><a href="cover.html#analyse_to_file-1">analyse_to_file/1</a></li>
<li title="analyse_to_file-2"><a href="cover.html#analyse_to_file-2">analyse_to_file/2</a></li>
<li title="analyse_to_file-2"><a href="cover.html#analyse_to_file-2">analyse_to_file/2</a></li>
<li title="analyse_to_file-3"><a href="cover.html#analyse_to_file-3">analyse_to_file/3</a></li>
<li title="async_analyse_to_file-1"><a href="cover.html#async_analyse_to_file-1">async_analyse_to_file/1</a></li>
<li title="async_analyse_to_file-2"><a href="cover.html#async_analyse_to_file-2">async_analyse_to_file/2</a></li>
<li title="async_analyse_to_file-2"><a href="cover.html#async_analyse_to_file-2">async_analyse_to_file/2</a></li>
<li title="async_analyse_to_file-3"><a href="cover.html#async_analyse_to_file-3">async_analyse_to_file/3</a></li>
<li title="modules-0"><a href="cover.html#modules-0">modules/0</a></li>
<li title="imported_modules-0"><a href="cover.html#imported_modules-0">imported_modules/0</a></li>
<li title="imported-0"><a href="cover.html#imported-0">imported/0</a></li>
<li title="which_nodes-0"><a href="cover.html#which_nodes-0">which_nodes/0</a></li>
<li title="is_compiled-1"><a href="cover.html#is_compiled-1">is_compiled/1</a></li>
<li title="reset-1"><a href="cover.html#reset-1">reset/1</a></li>
<li title="reset-0"><a href="cover.html#reset-0">reset/0</a></li>
<li title="export-1"><a href="cover.html#export-1">export/1</a></li>
<li title="export-2"><a href="cover.html#export-2">export/2</a></li>
<li title="import-1"><a href="cover.html#import-1">import/1</a></li>
<li title="stop-0"><a href="cover.html#stop-0">stop/0</a></li>
<li title="stop-1"><a href="cover.html#stop-1">stop/1</a></li>
</ul>
</li>
<li id="loadscrollpos" title="cprof " expanded="true">cprof<ul>
<li><a href="cprof.html">
                  Top of manual page
                </a></li>
<li title="analyse-0"><a href="cprof.html#analyse-0">analyse/0</a></li>
<li title="analyse-1"><a href="cprof.html#analyse-1">analyse/1</a></li>
<li title="analyse-1"><a href="cprof.html#analyse-1">analyse/1</a></li>
<li title="analyse-2"><a href="cprof.html#analyse-2">analyse/2</a></li>
<li title="pause-0"><a href="cprof.html#pause-0">pause/0</a></li>
<li title="pause-1"><a href="cprof.html#pause-1">pause/1</a></li>
<li title="pause-2"><a href="cprof.html#pause-2">pause/2</a></li>
<li title="pause-3"><a href="cprof.html#pause-3">pause/3</a></li>
<li title="restart-0"><a href="cprof.html#restart-0">restart/0</a></li>
<li title="restart-1"><a href="cprof.html#restart-1">restart/1</a></li>
<li title="restart-2"><a href="cprof.html#restart-2">restart/2</a></li>
<li title="restart-3"><a href="cprof.html#restart-3">restart/3</a></li>
<li title="start-0"><a href="cprof.html#start-0">start/0</a></li>
<li title="start-1"><a href="cprof.html#start-1">start/1</a></li>
<li title="start-2"><a href="cprof.html#start-2">start/2</a></li>
<li title="start-3"><a href="cprof.html#start-3">start/3</a></li>
<li title="stop-0"><a href="cprof.html#stop-0">stop/0</a></li>
<li title="stop-1"><a href="cprof.html#stop-1">stop/1</a></li>
<li title="stop-2"><a href="cprof.html#stop-2">stop/2</a></li>
<li title="stop-3"><a href="cprof.html#stop-3">stop/3</a></li>
</ul>
</li>
<li id="no" title="eprof " expanded="false">eprof<ul>
<li><a href="eprof.html">
                  Top of manual page
                </a></li>
<li title="start-0"><a href="eprof.html#start-0">start/0</a></li>
<li title="start_profiling-1"><a href="eprof.html#start_profiling-1">start_profiling/1</a></li>
<li title="start_profiling-2"><a href="eprof.html#start_profiling-2">start_profiling/2</a></li>
<li title="stop_profiling-0"><a href="eprof.html#stop_profiling-0">stop_profiling/0</a></li>
<li title="profile-1"><a href="eprof.html#profile-1">profile/1</a></li>
<li title="profile-1"><a href="eprof.html#profile-1">profile/1</a></li>
<li title="profile-2"><a href="eprof.html#profile-2">profile/2</a></li>
<li title="profile-3"><a href="eprof.html#profile-3">profile/3</a></li>
<li title="profile-4"><a href="eprof.html#profile-4">profile/4</a></li>
<li title="profile-5"><a href="eprof.html#profile-5">profile/5</a></li>
<li title="analyze-0"><a href="eprof.html#analyze-0">analyze/0</a></li>
<li title="analyze-1"><a href="eprof.html#analyze-1">analyze/1</a></li>
<li title="analyze-2"><a href="eprof.html#analyze-2">analyze/2</a></li>
<li title="log-1"><a href="eprof.html#log-1">log/1</a></li>
<li title="stop-0"><a href="eprof.html#stop-0">stop/0</a></li>
</ul>
</li>
<li title="erlang.el"><a href="erlang.el.html">erlang.el</a></li>
<li id="no" title="fprof " expanded="false">fprof<ul>
<li><a href="fprof.html">
                  Top of manual page
                </a></li>
<li title="start-0"><a href="fprof.html#start-0">start/0</a></li>
<li title="stop-0"><a href="fprof.html#stop-0">stop/0</a></li>
<li title="stop-1"><a href="fprof.html#stop-1">stop/1</a></li>
<li title="apply-2"><a href="fprof.html#apply-2">apply/2</a></li>
<li title="apply-3"><a href="fprof.html#apply-3">apply/3</a></li>
<li title="apply-3"><a href="fprof.html#apply-3">apply/3</a></li>
<li title="apply-4"><a href="fprof.html#apply-4">apply/4</a></li>
<li title="trace-2"><a href="fprof.html#trace-2">trace/2</a></li>
<li title="trace-2"><a href="fprof.html#trace-2">trace/2</a></li>
<li title="trace-2"><a href="fprof.html#trace-2">trace/2</a></li>
<li title="trace-1"><a href="fprof.html#trace-1">trace/1</a></li>
<li title="trace-1"><a href="fprof.html#trace-1">trace/1</a></li>
<li title="trace-1"><a href="fprof.html#trace-1">trace/1</a></li>
<li title="trace-1"><a href="fprof.html#trace-1">trace/1</a></li>
<li title="profile-0"><a href="fprof.html#profile-0">profile/0</a></li>
<li title="profile-2"><a href="fprof.html#profile-2">profile/2</a></li>
<li title="profile-1"><a href="fprof.html#profile-1">profile/1</a></li>
<li title="profile-1"><a href="fprof.html#profile-1">profile/1</a></li>
<li title="profile-1"><a href="fprof.html#profile-1">profile/1</a></li>
<li title="analyse-0"><a href="fprof.html#analyse-0">analyse/0</a></li>
<li title="analyse-2"><a href="fprof.html#analyse-2">analyse/2</a></li>
<li title="analyse-1"><a href="fprof.html#analyse-1">analyse/1</a></li>
<li title="analyse-1"><a href="fprof.html#analyse-1">analyse/1</a></li>
<li title="analyse-1"><a href="fprof.html#analyse-1">analyse/1</a></li>
</ul>
</li>
<li id="no" title="instrument " expanded="false">instrument<ul>
<li><a href="instrument.html">
                  Top of manual page
                </a></li>
<li title="allocator_descr-2"><a href="instrument.html#allocator_descr-2">allocator_descr/2</a></li>
<li title="block_header_size-1"><a href="instrument.html#block_header_size-1">block_header_size/1</a></li>
<li title="class_descr-2"><a href="instrument.html#class_descr-2">class_descr/2</a></li>
<li title="descr-1"><a href="instrument.html#descr-1">descr/1</a></li>
<li title="holes-1"><a href="instrument.html#holes-1">holes/1</a></li>
<li title="mem_limits-1"><a href="instrument.html#mem_limits-1">mem_limits/1</a></li>
<li title="memory_data-0"><a href="instrument.html#memory_data-0">memory_data/0</a></li>
<li title="memory_status-1"><a href="instrument.html#memory_status-1">memory_status/1</a></li>
<li title="read_memory_data-1"><a href="instrument.html#read_memory_data-1">read_memory_data/1</a></li>
<li title="read_memory_status-1"><a href="instrument.html#read_memory_status-1">read_memory_status/1</a></li>
<li title="sort-1"><a href="instrument.html#sort-1">sort/1</a></li>
<li title="store_memory_data-1"><a href="instrument.html#store_memory_data-1">store_memory_data/1</a></li>
<li title="store_memory_status-1"><a href="instrument.html#store_memory_status-1">store_memory_status/1</a></li>
<li title="sum_blocks-1"><a href="instrument.html#sum_blocks-1">sum_blocks/1</a></li>
<li title="type_descr-2"><a href="instrument.html#type_descr-2">type_descr/2</a></li>
<li title="type_no_range-1"><a href="instrument.html#type_no_range-1">type_no_range/1</a></li>
</ul>
</li>
<li id="no" title="lcnt " expanded="false">lcnt<ul>
<li><a href="lcnt.html">
                  Top of manual page
                </a></li>
<li title="start-0"><a href="lcnt.html#start-0">start/0</a></li>
<li title="stop-0"><a href="lcnt.html#stop-0">stop/0</a></li>
<li title="collect-0"><a href="lcnt.html#collect-0">collect/0</a></li>
<li title="collect-1"><a href="lcnt.html#collect-1">collect/1</a></li>
<li title="clear-0"><a href="lcnt.html#clear-0">clear/0</a></li>
<li title="clear-1"><a href="lcnt.html#clear-1">clear/1</a></li>
<li title="conflicts-0"><a href="lcnt.html#conflicts-0">conflicts/0</a></li>
<li title="conflicts-1"><a href="lcnt.html#conflicts-1">conflicts/1</a></li>
<li title="locations-0"><a href="lcnt.html#locations-0">locations/0</a></li>
<li title="locations-1"><a href="lcnt.html#locations-1">locations/1</a></li>
<li title="inspect-1"><a href="lcnt.html#inspect-1">inspect/1</a></li>
<li title="inspect-2"><a href="lcnt.html#inspect-2">inspect/2</a></li>
<li title="information-0"><a href="lcnt.html#information-0">information/0</a></li>
<li title="swap_pid_keys-0"><a href="lcnt.html#swap_pid_keys-0">swap_pid_keys/0</a></li>
<li title="load-1"><a href="lcnt.html#load-1">load/1</a></li>
<li title="save-1"><a href="lcnt.html#save-1">save/1</a></li>
<li title="apply-1"><a href="lcnt.html#apply-1">apply/1</a></li>
<li title="apply-2"><a href="lcnt.html#apply-2">apply/2</a></li>
<li title="apply-3"><a href="lcnt.html#apply-3">apply/3</a></li>
<li title="pid-2"><a href="lcnt.html#pid-2">pid/2</a></li>
<li title="pid-3"><a href="lcnt.html#pid-3">pid/3</a></li>
<li title="port-1"><a href="lcnt.html#port-1">port/1</a></li>
<li title="port-2"><a href="lcnt.html#port-2">port/2</a></li>
<li title="rt_collect-0"><a href="lcnt.html#rt_collect-0">rt_collect/0</a></li>
<li title="rt_collect-1"><a href="lcnt.html#rt_collect-1">rt_collect/1</a></li>
<li title="rt_clear-0"><a href="lcnt.html#rt_clear-0">rt_clear/0</a></li>
<li title="rt_clear-1"><a href="lcnt.html#rt_clear-1">rt_clear/1</a></li>
<li title="rt_opt-1"><a href="lcnt.html#rt_opt-1">rt_opt/1</a></li>
<li title="rt_opt-2"><a href="lcnt.html#rt_opt-2">rt_opt/2</a></li>
</ul>
</li>
<li id="no" title="make " expanded="false">make<ul>
<li><a href="make.html">
                  Top of manual page
                </a></li>
<li title="all-0"><a href="make.html#all-0">all/0</a></li>
<li title="all-1"><a href="make.html#all-1">all/1</a></li>
<li title="files-1"><a href="make.html#files-1">files/1</a></li>
<li title="files-2"><a href="make.html#files-2">files/2</a></li>
</ul>
</li>
<li id="no" title="tags " expanded="false">tags<ul>
<li><a href="tags.html">
                  Top of manual page
                </a></li>
<li title="file-1"><a href="tags.html#file-1">file/1</a></li>
<li title="files-1"><a href="tags.html#files-1">files/1</a></li>
<li title="dir-1"><a href="tags.html#dir-1">dir/1</a></li>
<li title="dirs-1"><a href="tags.html#dirs-1">dirs/1</a></li>
<li title="subdir-1"><a href="tags.html#subdir-1">subdir/1</a></li>
<li title="subdirs-1"><a href="tags.html#subdirs-1">subdirs/1</a></li>
<li title="root-1"><a href="tags.html#root-1">root/1</a></li>
</ul>
</li>
<li id="no" title="xref " expanded="false">xref<ul>
<li><a href="xref.html">
                  Top of manual page
                </a></li>
<li title="add_application-2"><a href="xref.html#add_application-2">add_application/2</a></li>
<li title="add_directory-2"><a href="xref.html#add_directory-2">add_directory/2</a></li>
<li title="add_module-2"><a href="xref.html#add_module-2">add_module/2</a></li>
<li title="add_release-2"><a href="xref.html#add_release-2">add_release/2</a></li>
<li title="analyze-2"><a href="xref.html#analyze-2">analyze/2</a></li>
<li title="d-1"><a href="xref.html#d-1">d/1</a></li>
<li title="forget-1"><a href="xref.html#forget-1">forget/1</a></li>
<li title="forget-2"><a href="xref.html#forget-2">forget/2</a></li>
<li title="format_error-1"><a href="xref.html#format_error-1">format_error/1</a></li>
<li title="get_default-1"><a href="xref.html#get_default-1">get_default/1</a></li>
<li title="get_default-2"><a href="xref.html#get_default-2">get_default/2</a></li>
<li title="get_library_path-1"><a href="xref.html#get_library_path-1">get_library_path/1</a></li>
<li title="info-1"><a href="xref.html#info-1">info/1</a></li>
<li title="info-2"><a href="xref.html#info-2">info/2</a></li>
<li title="info-3"><a href="xref.html#info-3">info/3</a></li>
<li title="m-1"><a href="xref.html#m-1">m/1</a></li>
<li title="m-1"><a href="xref.html#m-1">m/1</a></li>
<li title="q-2"><a href="xref.html#q-2">q/2</a></li>
<li title="remove_application-2"><a href="xref.html#remove_application-2">remove_application/2</a></li>
<li title="remove_module-2"><a href="xref.html#remove_module-2">remove_module/2</a></li>
<li title="remove_release-2"><a href="xref.html#remove_release-2">remove_release/2</a></li>
<li title="replace_application-3"><a href="xref.html#replace_application-3">replace_application/3</a></li>
<li title="replace_module-3"><a href="xref.html#replace_module-3">replace_module/3</a></li>
<li title="set_default-3"><a href="xref.html#set_default-3">set_default/3</a></li>
<li title="set_default-2"><a href="xref.html#set_default-2">set_default/2</a></li>
<li title="set_library_path-2"><a href="xref.html#set_library_path-2">set_library_path/2</a></li>
<li title="start-1"><a href="xref.html#start-1">start/1</a></li>
<li title="start-2"><a href="xref.html#start-2">start/2</a></li>
<li title="stop-1"><a href="xref.html#stop-1">stop/1</a></li>
<li title="update-1"><a href="xref.html#update-1">update/1</a></li>
<li title="variables-1"><a href="xref.html#variables-1">variables/1</a></li>
</ul>
</li>
</ul>
</div></div>
<div id="content">
<div class="innertube">
<!-- refpage --><center><h1>cprof</h1></center>
  
  <h3>MODULE</h3>
<div class="REFBODY">cprof</div>
  <h3>MODULE SUMMARY</h3>
<div class="REFBODY">A simple Call Count Profiling Tool using breakpoints for minimal runtime performance impact.</div>
  <h3>DESCRIPTION</h3>
<div class="REFBODY"><p>
    <p>The <span class="code">cprof</span> module is used to profile a program
      to find out how many times different functions are called.
      Breakpoints similar to local call trace, but containing a
      counter, are used to minimise runtime performance impact. 
      </p>
    <p>Since breakpoints are used there is no need for special
      compilation of any module to be profiled. For now these
      breakpoints can only be set on BEAM code so BIFs
      cannot be call count traced.
      </p>
    <p>The size of the call counters is the host machine word
      size. One bit is used when pausing the counter, so the maximum
      counter value for a 32-bit host is 2147483647.
      </p>
    <p>The profiling result is delivered as a term containing a
      sorted list of entries, one per module. Each module entry
      contains a sorted list of functions. The sorting order in both
      cases is of decreasing call count.
      </p>
    <p>Call count tracing is very lightweight compared to other forms
      of tracing since no trace message has to be generated. Some 
      measurements indicates performance degradation in the vicinity
      of 10 percent.
            <a name="analyse"></a>
</p>
  </p></div>
  <h3>EXPORTS</h3>
    <p><a name="analyse-0"><span class="bold_code">analyse() -&gt; {AllCallCount, ModAnalysisList}</span></a><br><a name="analyse-1"><span class="bold_code">analyse(Limit) -&gt; {AllCallCount, ModAnalysisList}</span></a><br><a name="analyse-1"><span class="bold_code">analyse(Mod) -&gt; ModAnlysis</span></a><br><a name="analyse-2"><span class="bold_code">analyse(Mod, Limit) -&gt; ModAnalysis</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">Limit = integer()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Mod = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">AllCallCount = integer()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">ModAnalysisList = [ModAnalysis]</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">ModAnalysis = {Mod, ModCallCount, FuncAnalysisList}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">ModCallCount = integer()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">FuncAnalysisList = [{{Mod, Func, Arity}, FuncCallCount}]</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Func = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Arity = integer()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">FuncCallCount = integer()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Collects and analyses the call counters presently in the
          node for either module <span class="code">Mod</span>, or for all modules
          (except <span class="code">cprof</span> itself), and returns: </p>
        <dl>
          <dt><strong><span class="code">FuncAnalysisList</span></strong></dt>
          <dd>A list of tuples, one for each function in a module, in
           decreasing <span class="code">FuncCallCount</span> order.</dd>
          <dt><strong><span class="code">ModCallCount</span></strong></dt>
          <dd>The sum of <span class="code">FuncCallCount</span> values for all
           functions in module <span class="code">Mod</span>.</dd>
          <dt><strong><span class="code">AllCallCount</span></strong></dt>
          <dd>The sum of <span class="code">ModCallCount</span> values for all modules
           concerned in <span class="code">ModAnalysisList</span>.</dd>
          <dt><strong><span class="code">ModAnalysisList</span></strong></dt>
          <dd>A list of tuples, one for each module except
          <span class="code">cprof</span>, in decreasing <span class="code">ModCallCount</span> order.</dd>
        </dl>
        <p>If call counters are still running while
          <span class="code">analyse/0..2</span> is executing, you might get an
          inconsistent result. This happens if the process executing
          <span class="code">analyse/0..2</span> gets scheduled out so some other process
          can increment the counters that are being analysed, Calling
          <span class="code">pause()</span> before analysing takes care of the problem.
          </p>
        <p>If the <span class="code">Mod</span> argument is given, the result contains a
          <span class="code">ModAnalysis</span> tuple for module <span class="code">Mod</span> only,
          otherwise the result contains one <span class="code">ModAnalysis</span> tuple
          for all  modules returned from <span class="code">code:all_loaded()</span>
          except <span class="code">cprof</span> itself.
          </p>
        <p>All functions with a <span class="code">FuncCallCount</span> lower than
          <span class="code">Limit</span> are excluded from <span class="code">FuncAnalysisList</span>. They
          are still included in <span class="code">ModCallCount</span>, though. 
          The default value for <span class="code">Limit</span> is <span class="code">1</span>.
                    <a name="pause_0"></a>
</p>
      </p></div>
    <p><a name="pause-0"><span class="bold_code">pause() -&gt; integer()</span></a><br></p>
<div class="REFBODY"><p>
        <p>Pause call count tracing for all functions in all modules
          and stop it for all functions in modules to be
          loaded. This is the same as 
          <span class="code">(pause({'_','_','_'})+stop({on_load}))</span>.
          </p>
        <p>See also 
          <span class="bold_code"><a href="#pause">pause/1..3</a></span> below.
                    <a name="pause"></a>
</p>
      </p></div>
    <p><a name="pause-1"><span class="bold_code">pause(FuncSpec) -&gt; integer()</span></a><br><a name="pause-2"><span class="bold_code">pause(Mod, Func) -&gt; integer()</span></a><br><a name="pause-3"><span class="bold_code">pause(Mod, Func, Arity) -&gt; integer()</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">FuncSpec = Mod | {Mod,Func,Arity}, {FS}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Mod = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Func = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Arity = integer()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">FS = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Pause call counters for matching functions in matching 
          modules. The <span class="code">FS</span> argument can be used to
          specify the first argument to
          <span class="code">erlang:trace_pattern/3</span>. See erlang(3). 
          </p>
        <p>The call counters for all matching functions that
          has got call count breakpoints are paused at their current
          count. 
          </p>
        <p>Return the number of matching functions that can have
          call count breakpoints, the same as
          <span class="code">start/0..3</span> with the same arguments would have
          returned. 
                    <a name="restart"></a>
</p>
      </p></div>
    <p><a name="restart-0"><span class="bold_code">restart() -&gt; integer()</span></a><br><a name="restart-1"><span class="bold_code">restart(FuncSpec) -&gt; integer()</span></a><br><a name="restart-2"><span class="bold_code">restart(Mod, Func) -&gt; integer()</span></a><br><a name="restart-3"><span class="bold_code">restart(Mod, Func, Arity) -&gt; integer()</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">FuncSpec = Mod | {Mod,Func,Arity}, {FS}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Mod = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Func = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Arity = integer()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">FS = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Restart call counters for the matching functions in
          matching modules that are call count traced. The <span class="code">FS</span>
          argument can be used to specify the first argument to
          <span class="code">erlang:trace_pattern/3</span>. See erlang(3).
          </p>
        <p>The call counters for all matching functions that has got
          call count breakpoints are set to zero and running.
          </p>
        <p>Return the number of matching functions that can have
          call count breakpoints, the same as
          <span class="code">start/0..3</span> with the same arguments would have
          returned. 
                    <a name="start_0"></a>
</p>
      </p></div>
    <p><a name="start-0"><span class="bold_code">start() -&gt; integer()</span></a><br></p>
<div class="REFBODY"><p>
        <p>Start call count tracing for all functions in all modules, 
          and also for all functions in modules to be
          loaded. This is the same as 
          <span class="code">(start({'_','_','_'})+start({on_load}))</span>.
          </p>
        <p>See also 
          <span class="bold_code"><a href="#start">start/1..3</a></span> below.
                    <a name="start"></a>
</p>
      </p></div>
    <p><a name="start-1"><span class="bold_code">start(FuncSpec) -&gt; integer()</span></a><br><a name="start-2"><span class="bold_code">start(Mod, Func) -&gt; integer()</span></a><br><a name="start-3"><span class="bold_code">start(Mod, Func, Arity) -&gt; integer()</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">FuncSpec = Mod | {Mod,Func,Arity}, {FS}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Mod = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Func = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Arity = integer()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">FS = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Start call count tracing for matching functions in matching 
          modules. The <span class="code">FS</span> argument can be used to specify the
          first argument to <span class="code">erlang:trace_pattern/3</span>, for example
          <span class="code">on_load</span>. See erlang(3). 
          </p>
        <p>Set call count breakpoints on the matching functions that
          has no call count breakpoints. Call counters 
          are set to zero and running for all matching functions.
          </p>
        <p>Return the number of matching functions that has got
          call count breakpoints.
                    <a name="stop_0"></a>
</p>
      </p></div>
    <p><a name="stop-0"><span class="bold_code">stop() -&gt; integer()</span></a><br></p>
<div class="REFBODY"><p>
        <p>Stop call count tracing for all functions in all modules, 
          and also for all functions in modules to be
          loaded. This is the same as 
          <span class="code">(stop({'_','_','_'})+stop({on_load}))</span>.
          </p>
        <p>See also 
          <span class="bold_code"><a href="#stop">stop/1..3</a></span> below.
                    <a name="stop"></a>
</p>
      </p></div>
    <p><a name="stop-1"><span class="bold_code">stop(FuncSpec) -&gt; integer()</span></a><br><a name="stop-2"><span class="bold_code">stop(Mod, Func) -&gt; integer()</span></a><br><a name="stop-3"><span class="bold_code">stop(Mod, Func, Arity) -&gt; integer()</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">FuncSpec = Mod | {Mod,Func,Arity}, {FS}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Mod = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Func = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Arity = integer()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">FS = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Stop call count tracing for matching functions in matching 
          modules. The <span class="code">FS</span> argument can be used to specify the
          first argument to <span class="code">erlang:trace_pattern/3</span>, for example
          <span class="code">on_load</span>. See erlang(3). 
          </p>
        <p>Remove call count breakpoints from the matching functions that
          has call count breakpoints.
          </p>
        <p>Return the number of matching functions that can have
          call count breakpoints, the same as
          <span class="code">start/0..3</span> with the same arguments would have
          returned. 
          </p>
      </p></div>
  

  <h3><a name="id78331">See Also</a></h3>
<div class="REFBODY">
    
    <p><span class="bold_code"><a href="eprof.html">eprof</a></span>(3), 
      <span class="bold_code"><a href="fprof.html">fprof</a></span>(3), 
      erlang(3), 
      <span class="bold_code"><a href="cprof_chapter.html">User's Guide</a></span></p>
  </div>
</div>
<div class="footer">
<hr>
<p>Copyright © 1997-2012 Ericsson AB. All Rights Reserved.</p>
</div>
</div>
</div></body>
</html>