| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
- <head>
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta http-equiv="X-UA-Compatible" content="IE=11"/>
- <meta name="generator" content="Doxygen 1.12.0"/>
- <meta name="viewport" content="width=device-width, initial-scale=1"/>
- <title>Jolt Physics: Profiler Class Reference</title>
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="jquery.js"></script>
- <script type="text/javascript" src="dynsections.js"></script>
- <script type="text/javascript" src="clipboard.js"></script>
- <link href="navtree.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="navtreedata.js"></script>
- <script type="text/javascript" src="navtree.js"></script>
- <script type="text/javascript" src="resize.js"></script>
- <script type="text/javascript" src="cookie.js"></script>
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="search/searchdata.js"></script>
- <script type="text/javascript" src="search/search.js"></script>
- <script type="text/x-mathjax-config">
- MathJax.Hub.Config({
- extensions: ["tex2jax.js"],
- jax: ["input/TeX","output/HTML-CSS"],
- });
- </script>
- <script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script>
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
- </head>
- <body>
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
- <div id="titlearea">
- <table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectlogo"><img alt="Logo" src="LogoSmall.png"/></td>
- <td id="projectalign">
- <div id="projectname">Jolt Physics
- </div>
- <div id="projectbrief">A multi core friendly Game Physics Engine</div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <!-- end header part -->
- <!-- Generated by Doxygen 1.12.0 -->
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
- var searchBox = new SearchBox("searchBox", "search/",'.html');
- /* @license-end */
- </script>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
- $(function() { codefold.init(0); });
- /* @license-end */
- </script>
- <script type="text/javascript" src="menudata.js"></script>
- <script type="text/javascript" src="menu.js"></script>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
- $(function() {
- initMenu('',true,false,'search.php','Search',true);
- $(function() { init_search(); });
- });
- /* @license-end */
- </script>
- <div id="main-nav"></div>
- </div><!-- top -->
- <div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
- </div>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
- $(function(){initNavTree('class_profiler.html',''); initResizable(true); });
- /* @license-end */
- </script>
- <div id="doc-content">
- <!-- window showing the filter options -->
- <div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
- </div>
- <!-- iframe showing the search results (closed by default) -->
- <div id="MSearchResultsWindow">
- <div id="MSearchResults">
- <div class="SRPage">
- <div id="SRIndex">
- <div id="SRResults"></div>
- <div class="SRStatus" id="Loading">Loading...</div>
- <div class="SRStatus" id="Searching">Searching...</div>
- <div class="SRStatus" id="NoMatches">No Matches</div>
- </div>
- </div>
- </div>
- </div>
- <div class="header">
- <div class="summary">
- <a href="#pub-methods">Public Member Functions</a> |
- <a href="#pub-static-attribs">Static Public Attributes</a> |
- <a href="class_profiler-members.html">List of all members</a> </div>
- <div class="headertitle"><div class="title">Profiler Class Reference</div></div>
- </div><!--header-->
- <div class="contents">
- <p>Singleton class for managing profiling information.
- <a href="#details">More...</a></p>
- <p><code>#include <<a class="el" href="_profiler_8h_source.html">Profiler.h</a>></code></p>
- <div class="dynheader">
- Inheritance diagram for Profiler:</div>
- <div class="dyncontent">
- <div class="center">
- <img src="class_profiler.png" usemap="#Profiler_map" alt=""/>
- <map id="Profiler_map" name="Profiler_map">
- <area href="class_non_copyable.html" title="Class that makes another class non-copyable. Usage: Inherit from NonCopyable." alt="NonCopyable" shape="rect" coords="0,0,89,24"/>
- </map>
- </div></div>
- <table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
- Public Member Functions</h2></td></tr>
- <tr class="memitem:a3cc0eb01aa7df555747074f3ccf1ab34" id="r_a3cc0eb01aa7df555747074f3ccf1ab34"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_memory_8h.html#a91074fb218fe28954a0938c099ddd9e0">JPH_OVERRIDE_NEW_DELETE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a3cc0eb01aa7df555747074f3ccf1ab34">Profiler</a> ()</td></tr>
- <tr class="memdesc:a3cc0eb01aa7df555747074f3ccf1ab34"><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br /></td></tr>
- <tr class="separator:a3cc0eb01aa7df555747074f3ccf1ab34"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:af2bab5342d06444376cd103c2c4207b8" id="r_af2bab5342d06444376cd103c2c4207b8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#af2bab5342d06444376cd103c2c4207b8">NextFrame</a> ()</td></tr>
- <tr class="memdesc:af2bab5342d06444376cd103c2c4207b8"><td class="mdescLeft"> </td><td class="mdescRight">Increments the frame counter to provide statistics per frame. <br /></td></tr>
- <tr class="separator:af2bab5342d06444376cd103c2c4207b8"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a4a8f82d68bd5c67cf7ad8259487bb821" id="r_a4a8f82d68bd5c67cf7ad8259487bb821"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a4a8f82d68bd5c67cf7ad8259487bb821">Dump</a> (const string_view &inTag=string_view())</td></tr>
- <tr class="separator:a4a8f82d68bd5c67cf7ad8259487bb821"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a72d49949a95f3bad23a8c288bd54d0f4" id="r_a72d49949a95f3bad23a8c288bd54d0f4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a72d49949a95f3bad23a8c288bd54d0f4">AddThread</a> (<a class="el" href="class_profile_thread.html">ProfileThread</a> *inThread)</td></tr>
- <tr class="memdesc:a72d49949a95f3bad23a8c288bd54d0f4"><td class="mdescLeft"> </td><td class="mdescRight">Add a thread to be instrumented. <br /></td></tr>
- <tr class="separator:a72d49949a95f3bad23a8c288bd54d0f4"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a647ca7e4e3b803986733583e2ba1fb3e" id="r_a647ca7e4e3b803986733583e2ba1fb3e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a647ca7e4e3b803986733583e2ba1fb3e">RemoveThread</a> (<a class="el" href="class_profile_thread.html">ProfileThread</a> *inThread)</td></tr>
- <tr class="memdesc:a647ca7e4e3b803986733583e2ba1fb3e"><td class="mdescLeft"> </td><td class="mdescRight">Remove a thread from being instrumented. <br /></td></tr>
- <tr class="separator:a647ca7e4e3b803986733583e2ba1fb3e"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:aff53e66213c9f8eb912c8b5b970394a7" id="r_aff53e66213c9f8eb912c8b5b970394a7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#aff53e66213c9f8eb912c8b5b970394a7">GetProcessorTicksPerSecond</a> () const</td></tr>
- <tr class="memdesc:aff53e66213c9f8eb912c8b5b970394a7"><td class="mdescLeft"> </td><td class="mdescRight">Get the amount of ticks per second, note that this number will never be fully accurate as the amount of ticks per second may vary with CPU load, so this number is only to be used to give an indication of time for profiling purposes. <br /></td></tr>
- <tr class="separator:aff53e66213c9f8eb912c8b5b970394a7"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="inherit_header pub_methods_class_non_copyable"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_class_non_copyable')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="class_non_copyable.html">NonCopyable</a></td></tr>
- <tr class="memitem:a809b6e4ade7ae32f6d248f2a3b783d45 inherit pub_methods_class_non_copyable" id="r_a809b6e4ade7ae32f6d248f2a3b783d45"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_non_copyable.html#a809b6e4ade7ae32f6d248f2a3b783d45">NonCopyable</a> ()=default</td></tr>
- <tr class="separator:a809b6e4ade7ae32f6d248f2a3b783d45 inherit pub_methods_class_non_copyable"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a501d34ffcc34b30de6d541887a901057 inherit pub_methods_class_non_copyable" id="r_a501d34ffcc34b30de6d541887a901057"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_non_copyable.html#a501d34ffcc34b30de6d541887a901057">NonCopyable</a> (const <a class="el" href="class_non_copyable.html">NonCopyable</a> &)=delete</td></tr>
- <tr class="separator:a501d34ffcc34b30de6d541887a901057 inherit pub_methods_class_non_copyable"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:aaf9b12dcaae80c9d304df7a941d4e21f inherit pub_methods_class_non_copyable" id="r_aaf9b12dcaae80c9d304df7a941d4e21f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_non_copyable.html#aaf9b12dcaae80c9d304df7a941d4e21f">operator=</a> (const <a class="el" href="class_non_copyable.html">NonCopyable</a> &)=delete</td></tr>
- <tr class="separator:aaf9b12dcaae80c9d304df7a941d4e21f inherit pub_methods_class_non_copyable"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-attribs" name="pub-static-attribs"></a>
- Static Public Attributes</h2></td></tr>
- <tr class="memitem:a804901c292686e870e221a0fa0621dbe" id="r_a804901c292686e870e221a0fa0621dbe"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_profiler.html">Profiler</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="#a804901c292686e870e221a0fa0621dbe">sInstance</a> = nullptr</td></tr>
- <tr class="memdesc:a804901c292686e870e221a0fa0621dbe"><td class="mdescLeft"> </td><td class="mdescRight">Singleton instance. <br /></td></tr>
- <tr class="separator:a804901c292686e870e221a0fa0621dbe"><td class="memSeparator" colspan="2"> </td></tr>
- </table>
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
- <div class="textblock"><p>Singleton class for managing profiling information. </p>
- </div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
- <a id="a3cc0eb01aa7df555747074f3ccf1ab34" name="a3cc0eb01aa7df555747074f3ccf1ab34"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a3cc0eb01aa7df555747074f3ccf1ab34">◆ </a></span>Profiler()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="_memory_8h.html#a91074fb218fe28954a0938c099ddd9e0">JPH_OVERRIDE_NEW_DELETE</a> Profiler::Profiler </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Constructor. </p>
- </div>
- </div>
- <h2 class="groupheader">Member Function Documentation</h2>
- <a id="a72d49949a95f3bad23a8c288bd54d0f4" name="a72d49949a95f3bad23a8c288bd54d0f4"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a72d49949a95f3bad23a8c288bd54d0f4">◆ </a></span>AddThread()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void Profiler::AddThread </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="class_profile_thread.html">ProfileThread</a> *</td> <td class="paramname"><span class="paramname"><em>inThread</em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Add a thread to be instrumented. </p>
- </div>
- </div>
- <a id="a4a8f82d68bd5c67cf7ad8259487bb821" name="a4a8f82d68bd5c67cf7ad8259487bb821"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a4a8f82d68bd5c67cf7ad8259487bb821">◆ </a></span>Dump()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void Profiler::Dump </td>
- <td>(</td>
- <td class="paramtype">const string_view &</td> <td class="paramname"><span class="paramname"><em>inTag</em></span><span class="paramdefsep"> = </span><span class="paramdefval">string_view()</span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Dump profiling statistics at the start of the next frame </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">inTag</td><td>If not empty, this overrides the auto incrementing number in the filename of the dump file </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a id="aff53e66213c9f8eb912c8b5b970394a7" name="aff53e66213c9f8eb912c8b5b970394a7"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#aff53e66213c9f8eb912c8b5b970394a7">◆ </a></span>GetProcessorTicksPerSecond()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> Profiler::GetProcessorTicksPerSecond </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Get the amount of ticks per second, note that this number will never be fully accurate as the amount of ticks per second may vary with CPU load, so this number is only to be used to give an indication of time for profiling purposes. </p>
- </div>
- </div>
- <a id="af2bab5342d06444376cd103c2c4207b8" name="af2bab5342d06444376cd103c2c4207b8"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#af2bab5342d06444376cd103c2c4207b8">◆ </a></span>NextFrame()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="_core_8h.html#a727ca2a69e72fed5f1cf97b0f283bb52">JPH_TSAN_NO_SANITIZE</a> void Profiler::NextFrame </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Increments the frame counter to provide statistics per frame. </p>
- </div>
- </div>
- <a id="a647ca7e4e3b803986733583e2ba1fb3e" name="a647ca7e4e3b803986733583e2ba1fb3e"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a647ca7e4e3b803986733583e2ba1fb3e">◆ </a></span>RemoveThread()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void Profiler::RemoveThread </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="class_profile_thread.html">ProfileThread</a> *</td> <td class="paramname"><span class="paramname"><em>inThread</em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Remove a thread from being instrumented. </p>
- </div>
- </div>
- <h2 class="groupheader">Member Data Documentation</h2>
- <a id="a804901c292686e870e221a0fa0621dbe" name="a804901c292686e870e221a0fa0621dbe"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a804901c292686e870e221a0fa0621dbe">◆ </a></span>sInstance</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="_core_8h.html#a4ac413403e9ca00d24a3e2f244cf5456">JPH_SUPPRESS_WARNINGS_STD_BEGIN</a> <a class="el" href="_core_8h.html#a5f6b64537a538d9204b253532b799467">JPH_SUPPRESS_WARNINGS_STD_END</a> <a class="el" href="_core_8h.html#ad14098b68b8c44ea6112601031268405">JPH_NAMESPACE_BEGIN</a> <a class="el" href="class_profiler.html">Profiler</a> * Profiler::sInstance = nullptr</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Singleton instance. </p>
- </div>
- </div>
- <hr/>The documentation for this class was generated from the following files:<ul>
- <li>Jolt/Core/<a class="el" href="_profiler_8h_source.html">Profiler.h</a></li>
- <li>Jolt/Core/<a class="el" href="_profiler_8cpp.html">Profiler.cpp</a></li>
- </ul>
- </div><!-- contents -->
- </div><!-- doc-content -->
- <!-- start footer part -->
- <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="class_profiler.html">Profiler</a></li>
- <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0 </li>
- </ul>
- </div>
- </body>
- </html>
|