This file is indexed.

/usr/share/doc/racket/optimization-coach/index.html is in racket-doc 6.7-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><title>Optimization Coach</title><link rel="stylesheet" type="text/css" href="../scribble.css" title="default"/><link rel="stylesheet" type="text/css" href="../racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-style.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../doc-site.css" title="default"/><script type="text/javascript" src="../scribble-common.js"></script><script type="text/javascript" src="../manual-racket.js"></script><script type="text/javascript" src="../manual-racket.js"></script><script type="text/javascript" src="../doc-site.js"></script><script type="text/javascript" src="../local-redirect/local-redirect.js"></script><script type="text/javascript" src="../local-redirect/local-user-redirect.js"></script><!--[if IE 6]><style type="text/css">.SIEHidden { overflow: hidden; }</style><![endif]--></head><body id="doc-racket-lang-org"><div class="tocset"><div class="tocview"><div class="tocviewlist tocviewlisttopspace"><div class="tocviewtitle"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,&quot;tocview_0&quot;);">&#9658;</a></td><td></td><td><a href="" class="tocviewselflink" data-pltdoc="x">Optimization Coach</a></td></tr></table></div><div class="tocviewsublistonly" style="display: none;" id="tocview_0"><table cellspacing="0" cellpadding="0"><tr><td align="right">1&nbsp;</td><td><a href="#%28part._.Refining_.Recommendations_with_.Profiling_.Information%29" class="tocviewlink" data-pltdoc="x">Refining Recommendations with Profiling Information</a></td></tr><tr><td align="right">2&nbsp;</td><td><a href="#%28part._.Verbose_.Mode%29" class="tocviewlink" data-pltdoc="x">Verbose Mode</a></td></tr></table></div></div></div><div class="tocsub"><table class="tocsublist" cellspacing="0"><tr><td><span class="tocsublinknumber"></span><a href="#%28part._top%29" class="tocsubseclink" data-pltdoc="x">Optimization Coach</a></td></tr><tr><td><span class="tocsublinknumber">1<tt>&nbsp;</tt></span><a href="#%28part._.Refining_.Recommendations_with_.Profiling_.Information%29" class="tocsubseclink" data-pltdoc="x">Refining Recommendations with Profiling Information</a></td></tr><tr><td><a href="#%28form._%28%28lib._optimization-coach%2Fmain..rkt%29._optimization-coach-profile%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktStxLink">optimization-<wbr></wbr>coach-<wbr></wbr>profile</span></span></a></td></tr><tr><td><span class="tocsublinknumber">2<tt>&nbsp;</tt></span><a href="#%28part._.Verbose_.Mode%29" class="tocsubseclink" data-pltdoc="x">Verbose Mode</a></td></tr></table></div></div><div class="maincolumn"><div class="main"><div class="versionbox"><span class="version">6.7</span></div><div class="navsettop"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, &quot;6.7&quot;, &quot;../&quot;);" onfocus="this.style.color=&quot;black&quot;; this.style.textAlign=&quot;left&quot;; if (this.value == &quot;...search manuals...&quot;) this.value=&quot;&quot;;" onblur="if (this.value.match(/^ *$/)) { this.style.color=&quot;#888&quot;; this.style.textAlign=&quot;center&quot;; this.value=&quot;...search manuals...&quot;; }"/></form>&nbsp;&nbsp;<a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;6.7&quot;);">top</a></span><span class="navright">&nbsp;&nbsp;<span class="nonavigation">&larr; prev</span>&nbsp;&nbsp;<a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;6.7&quot;);">up</a>&nbsp;&nbsp;<span class="nonavigation">next &rarr;</span></span>&nbsp;</div><h2 x-source-module="(lib &quot;optimization-coach/scribblings/optimization-coach.scrbl&quot;)" x-source-pkg="optimization-coach" x-part-tag="&quot;top&quot;"><a name="(part._top)"></a><a name="(part._.Optimization_.Coach)"></a>Optimization Coach</h2><div class="SAuthorListBox"><span class="SAuthorList"><p class="author">Vincent St-Amour &lt;<a href="mailto:stamourv@racket-lang.org">stamourv@racket-lang.org</a>&gt;</p></span></div><p>This package provides <a name="(tech._optimization._coaching)"></a><span style="font-style: italic">optimization coaching</span> support to help you get
the most of the Racket and Typed Racket optimizers.</p><p>The Optimization Coach DrRacket plugin can be used when editing a Typed Racket
program in DrRacket. Clicking the <span style="font-weight: bold">Optimization Coach</span> button runs the
optimizer and reports the results. All performed optimizations are highlighted
in green in the editor. In addition, the optimizer also reports cases where an
optimization was close to happening, but was not ultimately safe to perform.
These cases are highlighted in shades of red in the editor. The redder the
highlight, the higher the potential for optimization in the highlighted region
is.</p><p>Additional information can be accessed by right-clicking on the highlighted
regions and picking the <span style="font-weight: bold">Show Optimization Info</span> menu entry.
A summary of the performed optimizations and advice on how to adjust
code to make it more amenable to optimization is provided as appropriate, and
can serve as a starting point for further optimization.</p><p>Optimization Coach is also available for other Racket languages through the
<span style="font-weight: bold">Show Optimization Coach</span> entry in the <span style="font-weight: bold">View</span> menu.
When running from unytped Racket languages, Optimization Coach does not report
information about Typed Racket optimizations, and only reports information from
the Racket optimizer.</p><p>You can exit the coach by clicking the <span style="font-weight: bold">Close</span> button.</p><p>For more information about Optimization Coach&rsquo;s capabilities, see
<a href="http://www.ccs.neu.edu/racket/pubs/oopsla12-stf.pdf">our OOPSLA 2012
paper</a>. Note that there have been multiple extensions added since its
publication.</p><h3 x-source-module="(lib &quot;optimization-coach/scribblings/optimization-coach.scrbl&quot;)" x-source-pkg="optimization-coach" x-part-tag="&quot;Refining_Recommendations_with_Profiling_Information&quot;">1<tt>&nbsp;</tt><a name="(part._.Refining_.Recommendations_with_.Profiling_.Information)"></a>Refining Recommendations with Profiling Information</h3><p>Given profiling information about your program, Optimization Coach can tailor
its recommendations to help you focus on the parts of your program that really
matter.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>syntax</p></div></div><table cellspacing="0" cellpadding="0" class="RktBlk RForeground"><tr><td><span class="RktPn">(</span><a name="(form._((lib._optimization-coach/main..rkt)._optimization-coach-profile))"></a><span title="Provided from: optimization-coach | Package: optimization-coach"><span class="RktSym"><a href="#%28form._%28%28lib._optimization-coach%2Fmain..rkt%29._optimization-coach-profile%29%29" class="RktStxDef RktStxLink" data-pltdoc="x">optimization-coach-profile</a></span></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktPn">#:use-errortrace?</span><span class="hspace">&nbsp;</span><span class="RktPn">[</span><span class="RktVar">u-e?</span><span class="hspace">&nbsp;</span><span class="RktVal">#t</span><span class="RktPn">]</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">body</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">To gather profiling information for use with Optimization Coach, wrap the
portion of your program that you want to profile (typically an entry point to
the program) with <span class="RktSym"><a href="#%28form._%28%28lib._optimization-coach%2Fmain..rkt%29._optimization-coach-profile%29%29" class="RktStxLink" data-pltdoc="x">optimization-coach-profile</a></span>.</div></p><p>When you next run your program, profiling information will be written to a
file, ready to be used by Optimization Coach. The output filename is
constructed by appending the <span class="stt">.profile</span> suffix to the program&rsquo;s filename.</p><p><div class="SIntrapara">By default, Optimization Coach uses errortrace for profiling (if
errortrace-based profiling is available for your version of Racket).
Errortrace-based profiling only profiles non-compiled files, or files compiled
with errortrace annotations. You may need to delete your program&rsquo;s
<span class="stt">compiled</span> directories before profiling. To enable errotrace support at the
command-line:
</div><div class="SIntrapara"><span class="hspace">&nbsp;&nbsp;</span><span class="stt">racket -l errortrace -t file.rkt</span></div><div class="SIntrapara">To instead use the basic Racket profiler (using best-effort stack traces from
the runtime system), set the <span class="RktPn">#:use-errortrace?</span> argument to <span class="RktVal">#f</span>.</div></p><p>Once you have gathered profiling information, you can feed it to Optimization
Coach by specifying the profile file and clicking the <span style="font-weight: bold">Refine</span> button.
Optimization Coach will then reanalyze your program and produce new
recommendations.</p><p>Compared to the pre-profiling recommendations, those new recommendations should
be both more targeted and more aggressive.
Post profiling, Optimization Coach only recommends changes to functions that
had a significant impact on program performance according to profile data.
These are the functions where your tuning efforts are likely best spent.</p><p>In addition, Optimization Coach&rsquo;s post-profiling recommendations are more
aggressive. For example, it may recommend replacing convenient, high-level
constructs&#8212;<wbr></wbr>such as structs&ndash;with more performant but lower-level ones&#8212;<wbr></wbr>such
as vectors.</p><h3 x-source-module="(lib &quot;optimization-coach/scribblings/optimization-coach.scrbl&quot;)" x-source-pkg="optimization-coach" x-part-tag="&quot;Verbose_Mode&quot;">2<tt>&nbsp;</tt><a name="(part._.Verbose_.Mode)"></a>Verbose Mode</h3><p>Optimization Coach provides a <span style="font-style: italic">verbose</span> mode, which is enabled by clicking
the <span style="font-weight: bold">Show More</span> button. In verbose mode, reports that would only be
displayed for hot functions are displayed for all functions instead. No
profiling information is required to enable verbose mode.</p><div class="navsetbottom"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, &quot;6.7&quot;, &quot;../&quot;);" onfocus="this.style.color=&quot;black&quot;; this.style.textAlign=&quot;left&quot;; if (this.value == &quot;...search manuals...&quot;) this.value=&quot;&quot;;" onblur="if (this.value.match(/^ *$/)) { this.style.color=&quot;#888&quot;; this.style.textAlign=&quot;center&quot;; this.value=&quot;...search manuals...&quot;; }"/></form>&nbsp;&nbsp;<a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;6.7&quot;);">top</a></span><span class="navright">&nbsp;&nbsp;<span class="nonavigation">&larr; prev</span>&nbsp;&nbsp;<a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;6.7&quot;);">up</a>&nbsp;&nbsp;<span class="nonavigation">next &rarr;</span></span>&nbsp;</div></div></div><div id="contextindicator">&nbsp;</div></body></html>