a garbage collector for c and c++.mht

来自「gc6.7 一个适用于CC++的内存垃圾回收器,可以像Java中那样随意的分配内」· MHT 代码 · 共 1,262 行 · 第 1/4 页

MHT
1,262
字号
<A =
href=3D"http://www.cs.kent.ac.uk/people/staff/rej/gcbook/gcbook.html">his=
=20
book</A>.=20
<P><B>The following papers describe the collector algorithms we use and =
the=20
underlying design decisions at a higher level.</B>=20
<P>(Some of the lower level details can be found <A=20
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/gcdescr.html">here</=
A>.)=20
<P>The first one is not available electronically due to copyright=20
considerations. Most of the others are subject to ACM copyright.=20
<P>Boehm, H., "Dynamic Memory Allocation and Garbage Collection", =
<I>Computers=20
in Physics 9</I>, 3, May/June 1995, pp. 297-303. This is directed at an=20
otherwise sophisticated audience unfamiliar with memory allocation =
issues. The=20
algorithmic details differ from those in the implementation. There is a =
related=20
letter to the editor and a minor correction in the next issue.=20
<P>Boehm, H., and <A =
href=3D"http://www.ubiq.com/hypertext/weiser/weiser.html">M.=20
Weiser</A>, <A=20
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/spe_gc_paper">"Garbage =

Collection in an Uncooperative Environment"</A>, <I>Software Practice =
&amp;=20
Experience</I>, September 1988, pp. 807-820.=20
<P>Boehm, H., A. Demers, and S. Shenker, <A=20
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/papers/pldi91.ps.Z">=
"Mostly=20
Parallel Garbage Collection"</A>, Proceedings of the ACM SIGPLAN '91 =
Conference=20
on Programming Language Design and Implementation, <I>SIGPLAN Notices =
26</I>, 6=20
(June 1991), pp. 157-164.=20
<P>Boehm, H., <A=20
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/papers/pldi93.ps.Z">=
"Space=20
Efficient Conservative Garbage Collection"</A>, Proceedings of the ACM =
SIGPLAN=20
'93 Conference on Programming Language Design and Implementation, =
<I>SIGPLAN=20
Notices 28</I>, 6 (June 1993), pp. 197-206.=20
<P>Boehm, H., "Reducing Garbage Collector Cache Misses", <I>Proceedings =
of the=20
2000 International Symposium on Memory Management </I>. <A=20
href=3D"http://portal.acm.org/citation.cfm?doid=3D362422.362438">Official=
=20
version.</A> <A=20
href=3D"http://www.hpl.hp.com/techreports/2000/HPL-2000-99.html">Technica=
l report=20
version.</A> Describes the prefetch strategy incorporated into the =
collector for=20
some platforms. Explains why the sweep phase of a "mark-sweep" collector =
should=20
not really be a distinct phase.=20
<P>M. Serrano, H. Boehm, "Understanding Memory Allocation of Scheme =
Programs",=20
<I>Proceedings of the Fifth ACM SIGPLAN International Conference on =
Functional=20
Programming</I>, 2000, Montreal, Canada, pp. 245-256. <A=20
href=3D"http://www.acm.org/pubs/citations/proceedings/fp/351240/p245-serr=
ano/">Official=20
version.</A> <A=20
href=3D"http://www.hpl.hp.com/techreports/2000/HPL-2000-62.html">Earlier =
Technical=20
Report version.</A> Includes some discussion of the collector debugging=20
facilities for identifying causes of memory retention.=20
<P>Boehm, H., "Fast Multiprocessor Memory Allocation and Garbage =
Collection", <A=20
href=3D"http://www.hpl.hp.com/techreports/2000/HPL-2000-165.html">HP =
Labs=20
Technical Report HPL 2000-165</A>. Discusses the parallel collection =
algorithms,=20
and presents some performance results.=20
<P>Boehm, H., "Bounding Space Usage of Conservative Garbage Collectors", =

<I>Proceeedings of the 2002 ACM SIGPLAN-SIGACT Symposium on Principles =
of=20
Programming Languages</I>, Jan. 2002, pp. 93-100. <A=20
href=3D"http://portal.acm.org/citation.cfm?doid=3D503272.503282">Official=
=20
version.</A> <A=20
href=3D"http://www.hpl.hp.com/techreports/2001/HPL-2001-251.html">Technic=
al report=20
version.</A> Includes a discussion of a collector facility to much more =
reliably=20
test for the potential of unbounded heap growth.=20
<P><B>The following papers discuss language and compiler restrictions =
necessary=20
to guaranteed safety of conservative garbage collection.</B>=20
<P>We thank John Levine and JCLT for allowing us to make the second =
paper=20
available electronically, and providing PostScript for the final =
version.=20
<P>Boehm, H., <A=20
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/papers/pldi96.ps.gz"=
>``Simple=20
Garbage-Collector-Safety''</A>, Proceedings of the ACM SIGPLAN '96 =
Conference on=20
Programming Language Design and Implementation.=20
<P>Boehm, H., and D. Chase, <A=20
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/papers/boecha.ps.gz"=
>``A=20
Proposal for Garbage-Collector-Safe C Compilation''</A>, <I>Journal of C =

Language Translation 4</I>, 2 (Decemeber 1992), pp. 126-141.=20
<P><B>Other related information: </B>
<P>The Detlefs, Dosser and Zorn's <A=20
href=3D"ftp://ftp.cs.colorado.edu/pub/techreports/zorn/CU-CS-665-93.ps.Z"=
>Memory=20
Allocation Costs in Large C and C++ Programs</A>. This is a performance=20
comparison of the Boehm-Demers-Weiser collector to malloc/free, using =
programs=20
written for malloc/free.=20
<P>Joel Bartlett's <A href=3D"ftp://ftp.digital.com/pub/DEC/CCgc">mostly =
copying=20
conservative garbage collector for C++</A>.=20
<P>John Ellis and David Detlef's <A=20
href=3D"ftp://parcftp.xerox.com/pub/ellis/gc/gc.ps">Safe Efficient =
Garbage=20
Collection for C++</A> proposal.=20
<P>Henry Baker's <A href=3D"http://home.pipeline.com/~hbaker1/">paper=20
collection</A>.=20
<P>Slides for Hans Boehm's <A=20
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/myths.ps">Allocation=
 and GC=20
Myths</A> talk.=20
<H1><A name=3Dusers>Current users:</A></H1>Known current users of some =
variant of=20
this collector include:=20
<P>The runtime system for <A href=3D"http://gcc.gnu.org/java">GCJ</A>, =
the static=20
GNU java compiler.=20
<P><A href=3D"http://w3m.sourceforge.net/">W3m</A>, a text-based web =
browser.=20
<P>Some versions of the Xerox DocuPrint printer software.=20
<P>The <A href=3D"http://www.mozilla.org/">Mozilla</A> project, as leak =
detector.=20
<P>The <A href=3D"http://www.go-mono.com/">Mono</A> project, an open =
source=20
implementation of the .NET development framework.=20
<P>The <A href=3D"http://www.gnu.org/projects/dotgnu/">DotGNU =
Portable.NET=20
project</A>, another open source .NET implementation.=20
<P>The <A href=3D"http://irssi.org/">Irssi IRC client</A>.=20
<P><A href=3D"http://titanium.cs.berkeley.edu/">The Berkeley Titanium =
project</A>.=20

<P><A href=3D"http://www.nag.co.uk/nagware_fortran_compilers.asp">The =
NAGWare f90=20
Fortran 90 compiler</A>.=20
<P>Elwood Corporation's <A=20
href=3D"http://www.elwood.com/eclipse-info/index.htm">Eclipse</A> Common =
Lisp=20
system, C library, and translator.=20
<P>The <A href=3D"http://www-sop.inria.fr/mimosa/fp/Bigloo/">Bigloo =
Scheme</A> and=20
<A href=3D"http://kaolin.unice.fr/~serrano/camloo.html">Camloo ML =
compilers</A>=20
written by Manuel Serrano and others.=20
<P>Brent Benson's <A=20
href=3D"http://ftp.cs.indiana.edu/pub/scheme-repository/imp/">libscheme</=
A>.=20
<P>The <A=20
href=3D"http://www.cs.rice.edu/CS/PLT/packages/mzscheme/index.html">MzSch=
eme</A>=20
scheme implementation.=20
<P>The <A=20
href=3D"http://www.cs.washington.edu/research/projects/cecil/www/cecil-ho=
me.html">University=20
of Washington Cecil Implementation</A>.=20
<P><A href=3D"http://www.icsi.berkeley.edu/Sather/">The Berkeley Sather=20
implementation</A>.=20
<P><A href=3D"http://www.cs.berkeley.edu/~harmonia/">The Berkeley =
Harmonia=20
Project</A>.=20
<P>The <A href=3D"http://www.cs.arizona.edu/sumatra/toba/">Toba</A> Java =
Virtual=20
Machine to C translator.=20
<P>The <A href=3D"http://www.gwydiondylan.org/">Gwydion Dylan =
compiler</A>.=20
<P>The <A =
href=3D"http://gcc.gnu.org/onlinedocs/gcc/Objective-C.html">GNU=20
Objective C runtime</A>.=20
<P><A href=3D"http://www.math.uiuc.edu/Macaulay2">Macaulay 2</A>, a =
system to=20
support research in algebraic geometry and commutative algebra.=20
<P>The <A href=3D"http://www.vestasys.org/">Vesta</A> configuration =
management=20
system.=20
<P><A href=3D"http://www.visual-prolog.com/vip6">Visual Prolog 6</A>.=20
<P><A href=3D"http://asymptote.sf.net/">Asymptote LaTeX-compatible =
vector graphics=20
language.</A>=20
<H1><A name=3Dcollector>More collector information at this =
site</A></H1><A=20
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/simple_example.html"=
>A simple=20
illustration of how to build and use the collector.</A>.=20
<P><A=20
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/gcinterface.html">De=
scription=20
of alternate interfaces to the garbage collector.</A>=20
<P><A =
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/04tutorial.pdf">Slid=
es=20
from an ISMM 2004 tutorial about the GC.</A>=20
<P><A href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/faq.html">A =
FAQ=20
(frequently asked questions) list.</A></TD>=20
<P><A =
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/leak.html">How to =
use=20
the garbage collector as a leak detector.</A>=20
<P><A =
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/debugging.html">Some=
=20
hints on debugging garbage collected applications.</A>=20
<P><A =
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/gcdescr.html">An=20
overview of the implementation of the garbage collector.</A>=20
<P><A=20
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/porting.html">Instru=
ctions=20
for porting the collector to new platforms.</A>=20
<P><A =
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/tree.html">The data =

structure used for fast pointer lookups.</A>=20
<P><A =
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/scale.html">Scalabil=
ity=20
of the collector to multiprocessors.</A>=20
<P><A =
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source">Directory=
=20
containing garbage collector source.</A>=20
<H1><A name=3Dbackground>More background information at this =
site</A></H1><A=20
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/bounds.html">An =
attempt to=20
establish a bound on space usage of conservative garbage collectors.</A> =

<P><A=20
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/complexity.html">Mar=
k-sweep=20
versus copying garbage collectors and their complexity.</A>=20
<P><A =
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/conservative.html">P=
ros=20
and cons of conservative garbage collectors, in comparison to other =
collectors.=20
</A>
<P><A =
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/issues.html">Issues =

related to garbage collection vs. manual memory management in C/C++.</A> =

<P><A =
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/example.html">An=20
example of a case in which garbage collection results in a much faster=20
implementation as a result of reduced synchronization.</A>=20
<P><A =
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/nonmoving">Slide =
set=20
discussing performance of nonmoving garbage collectors.</A>=20
<P><A =
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/popl03/web">Slide set=20
discussing <I>Destructors, Finalizers, and Synchronization</I> (POPL =
2003).</A>=20
<P><A =
href=3D"http://portal.acm.org/citation.cfm?doid=3D604131.604153">Paper=20
corresponding to above slide set.</A> (<A=20
href=3D"http://www.hpl.hp.com/techreports/2002/HPL-2002-335.html"> =
Technical=20
Report version</A>.)=20
<P><A =
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_bench.html">A=20
Java/Scheme/C/C++ garbage collection benchmark.</A>=20
<P><A =
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/myths.ps">Slides =
for=20
talk on memory allocation myths.</A>=20
<P><A =
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/gctalk.ps">Slides =
for=20
OOPSLA 98 garbage collection talk.</A>=20
<P><A =
href=3D"http://www.hpl.hp.com/personal/Hans_Boehm/gc/papers">Related=20
papers.</A>=20
<H1><A name=3Dcontacts>Contacts and Mailing List<A></H1>We have recently =
set up=20
two mailing list for collector announcements and discussions:=20
<UL>
  <LI><A=20
  =
href=3D"mailto:gc-announce@linux.hpl.hp.com">gc-announce@linux.hpl.hp.com=
</A> is=20
  used for announcements of new versions. Postings are restricted. We =
expect=20
  this to always remain a very low volume list.=20
  <LI><A href=3D"mailto:gc@linux.hpl.hp.com">gc@linux.hpl.hp.com</A> is =
used for=20
  discussions, bug reports, and the like. Subscribers may post. On-topic =
posts=20
  by nonsubscribers will usually also be accepted, but it may take some =
time to=20
  review them. </LI></UL>To subscribe to these lists, send a mail =
message=20
containing the word "subscribe" to <A=20
href=3D"mailto:gc-announce-request@linux.hpl.hp.com?subject=3Dsubscribe">=
mailto:gc-announce-request@linux.hpl.hp.com?subject=3Dsubscribe</A>=20
or to <A=20
href=3D"mailto:gc-request@linux.hpl.hp.com?subject=3Dsubscribe">mailto:gc=

⌨️ 快捷键说明

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