⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit 4-62%.htm

📁 卡耐基梅隆大学ssd6系统级程序设计教材
💻 HTM
📖 第 1 页 / 共 5 页
字号:

<p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;margin-left:36.1pt;text-align:left;text-indent:-18.0pt;mso-pagination:
widow-orphan;mso-list:l10 level1 lfo12;tab-stops:list 36.0pt'><![if !supportLists]><span
lang=EN-US style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;color:black;
mso-font-kerning:0pt;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>&middot;<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN-US style='font-size:12.0pt;
color:black;mso-font-kerning:0pt;mso-ansi-language:EN-US'><a
href="http://www.icarnegie.com/content/SSD/SSD6/2.0/normal/pg-performance-improvement/pg-profiling/pg-timing-mechanisms/pg-timing-mechanisms.html#stat-sampling#stat-sampling">Statistical
Sampling</a> <o:p></o:p></span></p>

<p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;text-align:left;mso-pagination:widow-orphan'><span lang=EN-US
style='font-size:12.0pt;color:black;mso-font-kerning:0pt;mso-ansi-language:
EN-US'>There are two ways to measure the timing behavior of a program. The most
obvious is direct measurement with a timer. All operating systems have ways to
read the current time. In addition, many processors, including the Pentium
family, have special registers that count machine cycles and can be used to
determine elapsed time with very high precision. You can read the time before
and after calling a subroutine in order to measure the duration of the
subroutine:<o:p></o:p></span></p>

<div align=center>

<table class=MsoNormalTable border=0 cellpadding=0 style='mso-cellspacing:1.5pt;
 mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
 <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes'>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'>#include &lt;stdlib.h&gt;<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'>#include &lt;time.h&gt;<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'>#include &lt;iostream&gt;<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'>using namespace std;<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'>void my_subroutine(long n)<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'>{<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;
  </span>// this routine just does something that<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;
  </span>// takes some time so we can illustrate<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;
  </span>// timing a subroutine call:<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;
  </span>char s[16];<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;
  </span>for (long i = 0; i &lt; n; i++) {<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'><span
  style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>_itoa(i, s, sizeof(s));<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;
  </span>}<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'>}<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'><o:p>&nbsp;</o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'>int main(int argc, char* argv[])<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'>{<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;
  </span>long n = 1000000;<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;
  </span>clock_t start = clock();<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;
  </span>my_subroutine(n);<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;
  </span>clock_t finish = clock();<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;
  </span>double duration = (double)(finish - start) / CLOCKS_PER_SEC;<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;
  </span>cout &lt;&lt; &quot;Time for &quot; &lt;&lt; n &lt;&lt; &quot;
  iterations: &quot; &lt;&lt;<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'><span
  style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>duration &lt;&lt; &quot;s,&quot; &lt;&lt; &quot; precision is &quot;
  &lt;&lt; <o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'><span
  style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>CLOCKS_PER_SEC &lt;&lt; &quot; clocks per second.&quot; &lt;&lt;<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'><span
  style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>endl;<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'><span style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;
  </span>return 0;<o:p></o:p></span></p>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'>}<o:p></o:p></span></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:1;mso-yfti-lastrow:yes'>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><b><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'>Example 1</span></b><span lang=EN-US
  style='font-size:12.0pt;color:black;mso-font-kerning:0pt;mso-ansi-language:
  EN-US'> Measuring total time<o:p></o:p></span></p>
  </td>
 </tr>
</table>

</div>

<p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;text-align:left;mso-pagination:widow-orphan'><span lang=EN-US
style='font-size:12.0pt;color:black;mso-font-kerning:0pt;mso-ansi-language:
EN-US'>The output is:<o:p></o:p></span></p>

<div align=center>

<table class=MsoNormalTable border=0 cellpadding=0 style='mso-cellspacing:1.5pt;
 mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
 <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes'>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan;
  tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'>Time for 1000000 iterations: 4.12s, precision is
  1000 clocks per second. <o:p></o:p></span></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:1;mso-yfti-lastrow:yes'>
  <td style='padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal align=left style='text-align:left;mso-pagination:widow-orphan'><b><span
  lang=EN-US style='font-size:12.0pt;color:black;mso-font-kerning:0pt;
  mso-ansi-language:EN-US'>Output 1</span></b><span lang=EN-US
  style='font-size:12.0pt;color:black;mso-font-kerning:0pt;mso-ansi-language:
  EN-US'> Measuring total time<o:p></o:p></span></p>
  </td>
 </tr>
</table>

</div>

<p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;text-align:left;mso-pagination:widow-orphan'><span lang=EN-US
style='font-size:12.0pt;color:black;mso-font-kerning:0pt;mso-ansi-language:
EN-US'>The clock() function returns real time (wall time) in units of
1/CLOCKS_PER_SEC seconds. You should be aware that if execution time is very
short compared to 1/CLOCKS_PER_SEC, this approach will not give useful
information. Other, less obvious problems, include:<o:p></o:p></span></p>

<p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;margin-left:36.1pt;text-align:left;text-indent:-18.0pt;mso-pagination:
widow-orphan;mso-list:l8 level1 lfo14;tab-stops:list 36.0pt'><![if !supportLists]><span
lang=EN-US style='font-size:12.0pt;mso-fareast-font-family:"Times New Roman";
color:black;mso-font-kerning:0pt;mso-ansi-language:EN-US'><span
style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN-US style='font-size:12.0pt;
color:black;mso-font-kerning:0pt;mso-ansi-language:EN-US'>It would be difficult
to instruct the code to measure all subroutines-or even to identify suspicious
ones. <o:p></o:p></span></p>

<p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;margin-left:36.1pt;text-align:left;text-indent:-18.0pt;mso-pagination:
widow-orphan;mso-list:l8 level1 lfo14;tab-stops:list 36.0pt'><![if !supportLists]><span
lang=EN-US style='font-size:12.0pt;mso-fareast-font-family:"Times New Roman";
color:black;mso-font-kerning:0pt;mso-ansi-language:EN-US'><span
style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN-US style='font-size:12.0pt;
color:black;mso-font-kerning:0pt;mso-ansi-language:EN-US'>Frequent calls to get
the time can interfere with normal program execution. <o:p></o:p></span></p>

<p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;text-align:left;mso-pagination:widow-orphan;mso-outline-level:3'><b><span
lang=EN-US style='font-size:13.5pt;color:black;mso-font-kerning:0pt;mso-ansi-language:
EN-US'>High-Resolution on Pentium Systems<o:p></o:p></span></b></p>

<p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;text-align:left;mso-pagination:widow-orphan'><span lang=EN-US
style='font-size:12.0pt;color:black;mso-font-kerning:0pt;mso-ansi-language:
EN-US'>Typical operating system clocks are not very precise because they rely
on hardware to interrupt the processor every clock period. The operating system
then increments a counter. All of this takes time, and the faster (more
precise) the clock, the more processing time is taken up by the interrupts. A
1ms clock (1000 clocks per second) is about as high as you can expect from the
operating system. To be more precise, some systems have hardware clocks that
increment themselves automatically. These clocks can be read by the operating
system, or even directly by application programs. Intel Pentium processors
(among others) have a very high-speed internal 64-bit counter that can be
accessed by special instructions. Windows operating systems have an interface
to access this high-precision timer.<o:p></o:p></span></p>

<p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;text-align:left;mso-pagination:widow-orphan'><span lang=EN-US
style='font-size:12.0pt;color:black;mso-font-kerning:0pt;mso-ansi-language:
EN-US'>Example code using the high precision timer under Windows can be found
in the .zip file <a
href="http://www.icarnegie.com/content/SSD/SSD6/2.0/normal/pg-performance-improvement/pg-profiling/pg-timing-mechanisms/precise.zip">precise.zip</a>.
The header file is the following, and can be downloaded <a
href="http://www.icarnegie.com/content/SSD/SSD6/2.0/normal/pg-performance-improvement/pg-profiling/pg-timing-mechanisms/precise.h">here</a>:<o:p></o:p></span></p>

<div align=center>

<table class=MsoNormalTable border=0 cellpadding=0 style='mso-cellspacing:1.5pt;
 m

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -