*: Regenerate.
[gcc.git] / libstdc++-v3 / doc / html / manual / bk01pt03ch19s02.html
index 62878640ded6fad16f299e2e5c9fc871372e08ca..eca2a7aa2249a1d0622612bb7d2c5fd3696d5266 100644 (file)
@@ -1,10 +1,24 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      profile&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      runtime&#10;    , &#10;      library&#10;    "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode"/><link rel="prev" href="profile_mode.html" title="Chapter 19. Profile Mode"/><link rel="next" href="bk01pt03ch19s03.html" title="Extensions for Custom Containers"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td align="left"><a accesskey="p" href="profile_mode.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td align="right"> <a accesskey="n" href="bk01pt03ch19s03.html">Next</a></td></tr></table><hr/></div><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.design"/>Design</h2></div></div></div><p>
-</p><div class="table"><a id="id521792"/><p class="title"><strong>Table 19.1. Profile Code Location</strong></p><div class="table-contents"><table summary="Profile Code Location" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><thead><tr><th style="text-align: left">Code Location</th><th style="text-align: left">Use</th></tr></thead><tbody><tr><td style="text-align: left"><code class="code">libstdc++-v3/include/std/*</code></td><td style="text-align: left">Preprocessor code to redirect to profile extension headers.</td></tr><tr><td style="text-align: left"><code class="code">libstdc++-v3/include/profile/*</code></td><td style="text-align: left">Profile extension public headers (map, vector, ...).</td></tr><tr><td style="text-align: left"><code class="code">libstdc++-v3/include/profile/impl/*</code></td><td style="text-align: left">Profile extension internals.  Implementation files are
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"><meta name="keywords" content="
+      C++
+    , 
+      library
+    , 
+      profile
+    "><meta name="keywords" content="
+      ISO C++
+    , 
+      library
+    "><meta name="keywords" content="
+      ISO C++
+    , 
+      runtime
+    , 
+      library
+    "><link rel="home" href="../index.html" title="The GNU C++ Library"><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode"><link rel="prev" href="profile_mode.html" title="Chapter 19. Profile Mode"><link rel="next" href="bk01pt03ch19s03.html" title="Extensions for Custom Containers"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="profile_mode.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt03ch19s03.html">Next</a></td></tr></table><hr></div><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="manual.ext.profile_mode.design"></a>Design</h2></div></div></div><p>
+</p><div class="table"><a name="id635111"></a><p class="title"><b>Table 19.1. Profile Code Location</b></p><div class="table-contents"><table summary="Profile Code Location" border="1"><colgroup><col align="left" class="c1"><col align="left" class="c2"></colgroup><thead><tr><th align="left">Code Location</th><th align="left">Use</th></tr></thead><tbody><tr><td align="left"><code class="code">libstdc++-v3/include/std/*</code></td><td align="left">Preprocessor code to redirect to profile extension headers.</td></tr><tr><td align="left"><code class="code">libstdc++-v3/include/profile/*</code></td><td align="left">Profile extension public headers (map, vector, ...).</td></tr><tr><td align="left"><code class="code">libstdc++-v3/include/profile/impl/*</code></td><td align="left">Profile extension internals.  Implementation files are
      only included from <code class="code">impl/profiler.h</code>, which is the only
-     file included from the public headers.</td></tr></tbody></table></div></div><br class="table-break"/><p>
-</p><div class="section" title="Wrapper Model"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.wrapper"/>Wrapper Model</h3></div></div></div><p>
+     file included from the public headers.</td></tr></tbody></table></div></div><br class="table-break"><p>
+</p><div class="section" title="Wrapper Model"><div class="titlepage"><div><div><h3 class="title"><a name="manual.ext.profile_mode.design.wrapper"></a>Wrapper Model</h3></div></div></div><p>
   In order to get our instrumented library version included instead of the
   release one,
   we use the same wrapper model as the debug mode.
@@ -25,7 +39,7 @@
   Currently, mixing the profile mode with debug and parallel extensions is
   not allowed.  Mixing them at compile time will result in preprocessor errors.
   Mixing them at link time is undefined.
-  </p></div><div class="section" title="Instrumentation"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.instrumentation"/>Instrumentation</h3></div></div></div><p>
+  </p></div><div class="section" title="Instrumentation"><div class="titlepage"><div><div><h3 class="title"><a name="manual.ext.profile_mode.design.instrumentation"></a>Instrumentation</h3></div></div></div><p>
   Instead of instrumenting every public entry and exit point,
   we chose to add instrumentation on demand, as needed
   by individual diagnostics.
@@ -44,7 +58,7 @@
   </p><p>
   All the instrumentation on/off compile time switches live in
   <code class="code">include/profile/profiler.h</code>.
-  </p></div><div class="section" title="Run Time Behavior"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.rtlib"/>Run Time Behavior</h3></div></div></div><p>
+  </p></div><div class="section" title="Run Time Behavior"><div class="titlepage"><div><div><h3 class="title"><a name="manual.ext.profile_mode.design.rtlib"></a>Run Time Behavior</h3></div></div></div><p>
   For practical reasons, the instrumentation library processes the trace
   partially
   rather than dumping it to disk in raw form.  Each event is processed when
   call stack of its constructor location.
   </p><p>
   For details, see
-   <a class="link" href="http://dx.doi.org/10.1109/CGO.2009.36">paper presented at
+   <a class="link" href="http://dx.doi.org/10.1109/CGO.2009.36" target="_top">paper presented at
    CGO 2009</a>.
-  </p></div><div class="section" title="Analysis and Diagnostics"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.analysis"/>Analysis and Diagnostics</h3></div></div></div><p>
+  </p></div><div class="section" title="Analysis and Diagnostics"><div class="titlepage"><div><div><h3 class="title"><a name="manual.ext.profile_mode.design.analysis"></a>Analysis and Diagnostics</h3></div></div></div><p>
   Final analysis takes place offline, and it is based entirely on the
   generated trace and debugging info in the application binary.
   See section Diagnostics for a list of analysis types that we plan to support.
   </p><p>
   The input to the analysis is a table indexed by profile type and call stack.
   The data type for each entry depends on the profile type.
-  </p></div><div class="section" title="Cost Model"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.cost-model"/>Cost Model</h3></div></div></div><p>
+  </p></div><div class="section" title="Cost Model"><div class="titlepage"><div><div><h3 class="title"><a name="manual.ext.profile_mode.design.cost-model"></a>Cost Model</h3></div></div></div><p>
   While it is likely that cost models become complex as we get into
   more sophisticated analysis, we will try to follow a simple set of rules
   at the beginning.
-  </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><span class="emphasis"><em>Relative benefit estimation:</em></span>
+  </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="emphasis"><em>Relative benefit estimation:</em></span>
   The idea is to estimate or measure the cost of all operations
   in the original scenario versus the scenario we advise to switch to.
   For instance, when advising to change a vector to a list, an occurrence
   For instance, when considering switching from <code class="code">set</code> to
   <code class="code">unordered_set</code>, if we detect use of operator <code class="code">++</code>,
   we will simply not issue the advice, since this could signal that the use
-  care require a sorted container.</p></li></ul></div></div><div class="section" title="Reports"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.reports"/>Reports</h3></div></div></div><p>
+  care require a sorted container.</p></li></ul></div></div><div class="section" title="Reports"><div class="titlepage"><div><div><h3 class="title"><a name="manual.ext.profile_mode.design.reports"></a>Reports</h3></div></div></div><p>
 There are two types of reports.  First, if we recognize a pattern for which
 we have a substitute that is likely to give better performance, we print
 the advice and estimated performance gain.  The advice is usually associated
@@ -110,7 +124,7 @@ the top 10 <code class="code">multimap</code> locations
 which have the worst data locality in actual traversals.
 Although this does not offer a solution,
 it helps the user focus on the key problems and ignore the uninteresting ones.
-  </p></div><div class="section" title="Testing"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.testing"/>Testing</h3></div></div></div><p>
+  </p></div><div class="section" title="Testing"><div class="titlepage"><div><div><h3 class="title"><a name="manual.ext.profile_mode.design.testing"></a>Testing</h3></div></div></div><p>
   First, we want to make sure we preserve the behavior of the release mode.
   You can just type <code class="code">"make check-profile"</code>, which
   builds and runs the whole test suite in profile mode.
@@ -119,4 +133,4 @@ it helps the user focus on the key problems and ignore the uninteresting ones.
   We created a <code class="code">profile</code> directory in the test suite.
   Each diagnostic must come with at least two tests, one for false positives
   and one for false negatives.
-  </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="profile_mode.html">Prev</a> </td><td align="center"><a accesskey="u" href="profile_mode.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch19s03.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 19. Profile Mode </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Extensions for Custom Containers</td></tr></table></div></body></html>
+  </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="profile_mode.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="profile_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch19s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 19. Profile Mode </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Extensions for Custom Containers</td></tr></table></div></body></html>