|
|
ID: 21646, API for Boehm Garbage Collector DLL
A simple API unit for the Boehm GC, easy to use with classes needing finalization, demo application, GC DLL, full source.
|
| Download
| Details
|
|
|
|
|
CDN Login Required to Download. (You will be redirected to the login page if you click on the Download Link)
|
|
To download this, you must have registered:
|
For Delphi, Version 2.0
to 7.0
1098 downloads
Copyright: Open Source or other
Size: 1,157,266 bytes
Updated on Mon, 19 Apr 2004 11:34:52 GMT
Originally uploaded on Mon, 19 Apr 2004 11:30:59 GMT
SHA1 Hash: F3B5717F7EBE9D8CB538343E728AB8DBB84E718D
MD5 Hash: F58B78A68599F89E602C87E33686A9EA
|
Explore the files in this upload
File Exploration is Disabled
We're sorry, but errors in the uploaded zip file prevent it from being explored.
The error generated by the Zip attachment is:
You may still be able to repair the zip file contents if you download the entire zip locally. You may also want to ask the author to repost the attachment.
|
| Description
|
|
Barry Kelly , 19 April 2004
------------------------------------------------------
This archive contains a simple API unit for the Boehm Garbage
Collector DLL, along with another unit which makes it easier to use
with classes, and a demonstration application. Also included is the
Boehm GC DLL binary, along with source code in the gc_dll_src
directory.
The files:
BoehmGc.pas
-----------
This unit exports a dozen or so routines from the Boehm GC dll. Since
the GC integrates with and replaces the Delphi default memory
manager, you probably don't need to use this unit unless you want to
fine-tune the behaviour of the DLL. The DLL exports more routines
than are in this unit; the C prototypes are in the gc_dll_src/gc.h
header file, and can be imported as needed.
If you allocate large chunks of memory (>100K) which don't contain
references to other chunks (and thus don't need to be scanned for
pointers), there are routines in this unit which you can use to
increase performance. General advice: don't tweak until you need to
tweak.
Gc.pas
------
This is the main unit. Put this unit first in the uses clause of you
project and the project will automatically use garbage collection. If
you want to use objects which require finalization and you don't want
to have to call TObject.Free / TObject.Destroy on them manually, you
can use the MarkForFinalization(TObject) function. The basic pattern
is to register the object for finalization in its constructor and
unregister it with UnmarkForFinalization in its destructor. This
handles the two most common use cases for finalization: GC-invoked
finalization and manual finalization.
Note that it's always safe to behave as if GC doesn't exist, and use
GetMem/FreeMem, New/Dispose, Create/Free etc. The use of these units
simply allows you to also program with garbage collection.
GcTest.dpr & GcTest.exe
-----------------------
This program contains simple sample code demonstrating the garbage
collector in action.
BoehmGC.dll
-----------
This contains the implementation of the garbage collector itself. The
DLL can be recompiled from the source in gc_dll_src with various
options, including multithreaded support, different pointer alignment
granularities, etc.
****
The original Boehm GC source comes from:
http://www.hpl.hp.com/personal/Hans_Boehm/gc/
I'm Barry Kelly: barry_j_kelly@hotmail.com
You can do anything you like with my source code (*.pas, *.dpr).
See the file gc_dll_src/LICENSEa for permissions for the GC itself.
|
|

Server Response from: ETNACDC01
|
Connect with Us