diff options
| author | Nick Barnes | 2002-04-15 13:38:06 +0100 |
|---|---|---|
| committer | Nick Barnes | 2002-04-15 13:38:06 +0100 |
| commit | e192b60aec3f207478bfe152c724e75da9e1dbef (patch) | |
| tree | 0447f7a81c35d6497ffccb27810158b07c2c9e7f | |
| parent | 9cabc24ee2f0282927f4853d604a28a78f4756b6 (diff) | |
| download | emacs-e192b60aec3f207478bfe152c724e75da9e1dbef.tar.gz emacs-e192b60aec3f207478bfe152c724e75da9e1dbef.zip | |
Reformat and add contents.
Copied from Perforce
Change: 28236
ServerID: perforce.ravenbrook.com
| -rw-r--r-- | mps/mmdoc/protocol/mps/alloc-pattern-ramp/index.html | 260 |
1 files changed, 101 insertions, 159 deletions
diff --git a/mps/mmdoc/protocol/mps/alloc-pattern-ramp/index.html b/mps/mmdoc/protocol/mps/alloc-pattern-ramp/index.html index 6ac616d7cd7..50376c3b8f1 100644 --- a/mps/mmdoc/protocol/mps/alloc-pattern-ramp/index.html +++ b/mps/mmdoc/protocol/mps/alloc-pattern-ramp/index.html | |||
| @@ -1,232 +1,174 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
| 2 | 2 | ||
| 3 | |||
| 4 | |||
| 5 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> | 3 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> |
| 6 | 4 | ||
| 5 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | ||
| 7 | 6 | ||
| 7 | <head> | ||
| 8 | 8 | ||
| 9 | <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'> | 9 | <title>MPS Ramp Allocation Pattern Protocol</title> |
| 10 | |||
| 11 | <head> | ||
| 12 | |||
| 13 | <title>MPS Ramp Allocation Pattern Protocol</title> | ||
| 14 | |||
| 15 | </head> | ||
| 16 | |||
| 17 | <body bgcolor='#FFFFFF' text='#000000' link='#000099' vlink='#660066' alink='#FF0000'> | ||
| 18 | |||
| 19 | <div align='center'> | ||
| 20 | |||
| 21 | <h1>MPS Ramp Allocation Pattern Protocol</h1> | ||
| 22 | |||
| 23 | <p>incomplete</p> | ||
| 24 | |||
| 25 | <address>drj, 1998-06-25</address> | ||
| 26 | |||
| 27 | </div> | ||
| 28 | |||
| 29 | <h2> | ||
| 30 | |||
| 31 | <a id='section-introduction' name='section-introduction'>Introduction</a> | ||
| 32 | |||
| 33 | </h2> | ||
| 34 | |||
| 35 | <p>This document describes the purpose and usage of the Ramp Allocation Pattern Protocol.</p> | ||
| 36 | |||
| 37 | <h2> | ||
| 38 | |||
| 39 | <a id='section-overview' name='section-overview'>Overview</a> | ||
| 40 | |||
| 41 | </h2> | ||
| 42 | |||
| 43 | <p>A Ramp Allocation Pattern is a particular Allocation Pattern (see doc). They are used to declare the building of large data structures which persist somewhat longer than the usual nursery collection frequency and are then almost entirely thrown away.</p> | ||
| 44 | |||
| 45 | <h2> | ||
| 46 | |||
| 47 | <a id='section-definitions' name='section-definitions'>Definitions</a> | ||
| 48 | |||
| 49 | </h2> | ||
| 50 | |||
| 51 | <p>"Ramp Allocation" is used to describe a pattern of allocation whereby the mutator builds up an increasingly large data structure the live size of which increases until a particularly time at which time most of the data structure is discarded resulting in sharp cutoff and decline in the live size.</p> | ||
| 52 | |||
| 53 | <h2> | ||
| 54 | |||
| 55 | <a id='section-stuff' name='section-stuff'>Stuff</a> | ||
| 56 | |||
| 57 | </h2> | ||
| 58 | |||
| 59 | <p> | ||
| 60 | |||
| 61 | Using Ramp Allocation Patterns conforms to the general use of allocation patterns. So in particular, a ramp allocation is associated with a particular allocation point. | ||
| 62 | |||
| 63 | It's probably only worth declaring a ramp allocation if the expected size is much larger than the nursery generation. | ||
| 64 | |||
| 65 | </p> | ||
| 66 | |||
| 67 | <p> | ||
| 68 | |||
| 69 | A Ramp Allocation has two interesting points: a beginning and an end. | ||
| 70 | |||
| 71 | The beginning is the point in time at which the mutator beings the ramp allocation. | ||
| 72 | |||
| 73 | The end is the point when the mutator has discarded most of the live object and the live size has declined. | ||
| 74 | |||
| 75 | </p> | ||
| 76 | |||
| 77 | <p>The beginning of a ramp allocation is declared using mps_ap_alloc_pattern_begin:</p> | ||
| 78 | |||
| 79 | <p>mps_ap_alloc_pattern_begin(an_ap, mps_alloc_pattern_ramp())</p> | ||
| 80 | |||
| 81 | <p>The end of a ramp allocation is declared using mps_ap_alloc_pattern_end:</p> | ||
| 82 | |||
| 83 | <p>mps_ap_alloc_pattern_end(an_ap, mps_alloc_pattern_ramp())</p> | ||
| 84 | |||
| 85 | <p>Ramp allocations on a given allocation point can nest. mps_ap_alloc_pattern_end is a declaration that the most recently begun ramp allocation on the specified allocation point has ended.</p> | ||
| 86 | |||
| 87 | <p>In case the client doesn't keep track of the nesting, it can reset all declarations of all allocation patterns on a particular allocation point:</p> | ||
| 88 | |||
| 89 | <p>mps_ap_alloc_pattern_reset(an_ap)</p> | ||
| 90 | |||
| 91 | <h2> | ||
| 92 | |||
| 93 | <a id='section-A' name='section-A'>A. References</a> | ||
| 94 | |||
| 95 | </h2> | ||
| 96 | |||
| 97 | <h2> | ||
| 98 | |||
| 99 | <a id='section-B' name='section-B'>B. Document History</a> | ||
| 100 | 10 | ||
| 101 | </h2> | 11 | </head> |
| 102 | 12 | ||
| 103 | <table> | 13 | <body bgcolor="#FFFFFF" text="#000000" link="#000099" vlink="#660066" alink="#FF0000"> |
| 104 | 14 | ||
| 105 | <tr valign='top'> | 15 | <div align="center"> |
| 106 | 16 | ||
| 107 | <td>1998-06-25 15:41:58 +00</td> | 17 | <h1>MPS Ramp Allocation Pattern Protocol</h1> |
| 108 | 18 | ||
| 109 | <td>drj</td> | 19 | <p>incomplete</p> |
| 110 | 20 | ||
| 111 | <td>New document saved</td> | 21 | <address> |
| 22 | <a href="mailto:nb@ravenbrook.com">Nick Barnes</a>, | ||
| 23 | <a href="http://www.ravenbrook.com/">Ravenbrook Limited</a>, | ||
| 24 | 2001-11-14 | ||
| 25 | </address> | ||
| 112 | 26 | ||
| 113 | </tr> | 27 | </div> |
| 114 | 28 | ||
| 115 | <tr valign='top'> | 29 | <h2><a id="section-Contents" name="section-Contents">Contents</a></h2> |
| 116 | 30 | ||
| 117 | <td>1998-06-25 15:57:24 +00</td> | 31 | <ul> |
| 118 | 32 | ||
| 119 | <td>drj</td> | 33 | <li><a href="#section-1">1. Introduction</a></li> |
| 120 | 34 | ||
| 121 | <td>typo</td> | 35 | <li><a href="#section-2">2. Overview</a></li> |
| 122 | 36 | ||
| 123 | </tr> | 37 | <li><a href="#section-3">3. Definitions</a></li> |
| 124 | 38 | ||
| 125 | <tr valign='top'> | 39 | <li><a href="#section-4">4. Protocol</a></li> |
| 126 | 40 | ||
| 127 | <td>1998-06-29 09:55:02 +00</td> | 41 | <li><a href="#section-A">A. References</a></li> |
| 128 | 42 | ||
| 129 | <td>drj</td> | 43 | <li><a href="#section-B">B. Document history</a></li> |
| 130 | 44 | ||
| 131 | <td>adding ref to genera's with-ephemeral-mode</td> | 45 | </ul> |
| 132 | 46 | ||
| 133 | </tr> | 47 | <h2><a id="section-1" name="section-1">1. Introduction</a></h2> |
| 134 | 48 | ||
| 135 | <tr valign='top'> | 49 | <p>This document describes the purpose and usage of the Ramp |
| 50 | Allocation Pattern Protocol.</p> | ||
| 136 | 51 | ||
| 137 | <td>1998-07-06 16:02:15 +00</td> | 52 | <h2><a id="section-2" name="section-2">2. Overview</a></h2> |
| 138 | 53 | ||
| 139 | <td>drj</td> | 54 | <p>A Ramp Allocation Pattern is a particular Allocation Pattern [see |
| 55 | doc]. They are used to declare the building of large data structures | ||
| 56 | which persist somewhat longer than the usual nursery collection | ||
| 57 | frequency and are then almost entirely thrown away.</p> | ||
| 140 | 58 | ||
| 141 | <td>added another ref to ptw's mail</td> | 59 | <h2><a id="section-3" name="section-3">3. Definitions</a></h2> |
| 142 | 60 | ||
| 143 | </tr> | 61 | <p>"Ramp Allocation" is used to describe a pattern of allocation |
| 62 | whereby the mutator builds up an increasingly large data structure, | ||
| 63 | the live size of which increases until a particularly time, at which | ||
| 64 | time most of the data structure is discarded, resulting in sharp | ||
| 65 | cutoff and decline in the live size.</p> | ||
| 144 | 66 | ||
| 145 | <tr valign='top'> | 67 | <h2><a id="section-4" name="section-4">4. Protocol</a></h2> |
| 146 | 68 | ||
| 147 | <td>1998-08-27 14:11:33 +00</td> | 69 | <p>Using Ramp Allocation Patterns conforms to the general use of |
| 70 | allocation patterns. So in particular, a ramp allocation is | ||
| 71 | associated with a particular allocation point.</p> | ||
| 148 | 72 | ||
| 149 | <td>drj</td> | 73 | <p>It's probably only worth declaring a ramp allocation if the |
| 74 | expected size is much larger than the nursery generation.</p> | ||
| 150 | 75 | ||
| 151 | <td>fixed typo</td> | 76 | <p>A Ramp Allocation has two interesting points: a beginning and an |
| 77 | end.</p> | ||
| 152 | 78 | ||
| 153 | </tr> | 79 | <p>The beginning is the point in time at which the mutator beings the |
| 80 | ramp allocation.</p> | ||
| 154 | 81 | ||
| 155 | <tr valign='top'> | 82 | <p>The end is the point when the mutator has discarded most of the |
| 83 | live object and the live size has declined.</p> | ||
| 156 | 84 | ||
| 157 | <td>2000-05-19 16:13:44 +01</td> | 85 | <p>The beginning of a ramp allocation is declared using <code |
| 86 | class="source">mps_ap_alloc_pattern_begin</code>:</p> | ||
| 158 | 87 | ||
| 159 | <td>pekka</td> | 88 | <p><code class="source">mps_ap_alloc_pattern_begin(an_ap, |
| 89 | mps_alloc_pattern_ramp())</code></p> | ||
| 160 | 90 | ||
| 161 | <td>Fix format</td> | 91 | <p>The end of a ramp allocation is declared using <code |
| 92 | class="source">mps_ap_alloc_pattern_end</code>:</p> | ||
| 162 | 93 | ||
| 163 | </tr> | 94 | <p><code class="source">mps_ap_alloc_pattern_end(an_ap, |
| 95 | mps_alloc_pattern_ramp())</code></p> | ||
| 164 | 96 | ||
| 165 | <tr valign='top'> | 97 | <p>Ramp allocations on a given allocation point can nest. <code |
| 98 | class="source">mps_ap_alloc_pattern_end</code> is a declaration that | ||
| 99 | the most recently begun ramp allocation on the specified allocation | ||
| 100 | point has ended.</p> | ||
| 166 | 101 | ||
| 167 | <td>2000-05-23 14:51:09 +01</td> | 102 | <p>In case the client doesn't keep track of the nesting, it can reset |
| 103 | all declarations of all allocation patterns on a particular allocation | ||
| 104 | point:</p> | ||
| 168 | 105 | ||
| 169 | <td /> | 106 | <p><code class="source">mps_ap_alloc_pattern_reset(an_ap)</code></p> |
| 170 | 107 | ||
| 171 | <td>fix title</td> | 108 | <h2><a id="section-A" name="section-A">A. References</a></h2> |
| 172 | 109 | ||
| 173 | </tr> | 110 | <h2><a id="section-B" name="section-B">B. Document History</a></h2> |
| 174 | 111 | ||
| 175 | <tr valign='top'> | 112 | <table> |
| 176 | 113 | ||
| 177 | <td>2000-05-23 14:51:16 +01</td> | 114 | <tr valign="top"> |
| 178 | 115 | ||
| 179 | <td>pekka</td> | 116 | <td>1998-06-25</td> |
| 180 | 117 | ||
| 181 | <td>fix title</td> | 118 | <td>drj</td> |
| 182 | 119 | ||
| 183 | </tr> | 120 | <td>Created</td> |
| 184 | 121 | ||
| 185 | <tr valign='top'> | 122 | </tr> |
| 186 | 123 | ||
| 187 | <td>2000-10-04 14:36:59 +01</td> | 124 | <tr> |
| 188 | 125 | ||
| 189 | <td>pekka</td> | 126 | <td>1998-06-25 to 2000-10-04</td> |
| 190 | 127 | ||
| 191 | <td>remove Dylan stuff; clean up</td> | 128 | <td /> |
| 192 | 129 | ||
| 193 | </tr> | 130 | <td>Developed at Harlequin</td> |
| 194 | 131 | ||
| 195 | <tr valign='top'> | 132 | </tr> |
| 196 | 133 | ||
| 197 | <td>2001-09-26</td> | 134 | <tr valign="top"> |
| 198 | 135 | ||
| 199 | <td> | 136 | <td>2001-09-26</td> |
| 200 | 137 | ||
| 201 | <a href='mailto:ndl@ravenbrook.com'>NDL</a> | 138 | <td><a href="mailto:ndl@ravenbrook.com">NDL</a></td> |
| 202 | 139 | ||
| 203 | </td> | 140 | <td>Converted from xml to html (second pass).</td> |
| 204 | 141 | ||
| 205 | <td>Converted from xml to html (second pass).</td> | 142 | </tr> |
| 206 | 143 | ||
| 207 | </tr> | 144 | <tr valign="top"> |
| 208 | 145 | ||
| 209 | </table> | 146 | <td>2001-11-14</td> |
| 210 | 147 | ||
| 211 | <hr /> | 148 | <td><a href="mailto:nb@ravenbrook.com">NB</a></td> |
| 212 | 149 | ||
| 213 | <p> | 150 | <td>Reformatted and adopted.</td> |
| 214 | 151 | ||
| 215 | <small>Copyright © 2001 Ravenbrook Limited. This document is provided "as is", without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this document. You may not duplicate or reproduce this document in any form without the express permission of the copyright holder.</small> | 152 | </tr> |
| 216 | 153 | ||
| 217 | </p> | 154 | </table> |
| 218 | 155 | ||
| 219 | <div align='center'> | 156 | <hr /> |
| 220 | 157 | ||
| 221 | <p> | 158 | <p><small>Copyright © 2001 Ravenbrook Limited. This document is |
| 159 | provided "as is", without any express or implied warranty. In no | ||
| 160 | event will the authors be held liable for any damages arising from the | ||
| 161 | use of this document. You may not duplicate or reproduce this | ||
| 162 | document in any form without the express permission of the copyright | ||
| 163 | holder.</small></p> | ||
| 222 | 164 | ||
| 223 | <code>$Id$</code> | 165 | <div align="center"> |
| 224 | 166 | ||
| 225 | </p> | 167 | <p><code>$Id$</code></p> |
| 226 | 168 | ||
| 227 | </div> | 169 | </div> |
| 228 | 170 | ||
| 229 | </body> | 171 | </body> |
| 230 | 172 | ||
| 231 | </html> | 173 | </html> |
| 232 | 174 | ||