Connection Information

To perform the requested action, WordPress needs to access your web server. Please enter your FTP credentials to proceed. If you do not remember your credentials, you should contact your web host.

Connection Type

Garbage collection – PB Docs 125 – PowerBuilder Library

Garbage collection – PB Docs 125

Garbage collection

What garbage collection does

The PowerBuilder garbage collection mechanism checks memory automatically
for unreferenced and orphaned objects and removes any it finds, thus
taking care of most memory leaks. You can use garbage collection
to destroy objects instead of explicitly destroying them using the DESTROY statement.
This lets you avoid runtime errors that occur when you destroy an object
that was being used by another process or had been passed by reference to
a posted event or function.

When garbage collection occurs

Garbage collection occurs:

  • When
    a reference is removed from an object

    A reference to an object is any variable whose value is the
    object. When the variable goes out of scope, or when it is assigned
    a different value, PowerBuilder removes a reference to the object,
    counts the remaining references, and destroys the object if no references
    remain.

  • When the garbage collection interval
    is exceeded

    When PowerBuilder completes the execution of a system-triggered
    event, it makes a garbage collection pass if the set interval between
    garbage collection passes has been exceeded. The default interval
    is 0.5 seconds. The garbage collection pass removes any objects
    and classes that cannot be referenced, including those containing
    circular references (otherwise unreferenced objects that reference
    each other).

When you post an event or function and pass an object reference,
PowerBuilder adds an internal reference to the object to prevent
it from being collected between the time of the post and the actual
execution of the event or function. This reference is removed when
the event or function is executed.

Exceptions to garbage collection

There are a few objects that are prevented from being collected:

  • Visual objects

    Any object that is visible on your screen is not collected because
    when the object is created and displayed on your screen, an internal
    reference is added to the object. When any visual object is closed it
    is explicitly destroyed.

  • Timing objects

    Any Timing object that is currently running is not collected
    because the Start function for a Timing object
    adds an internal reference. The Stop function
    removes the reference.

  • Shared objects

    Registered shared objects are not collected because the SharedObjectRegister function
    adds an internal reference. SharedObjectUnregister removes
    the internal reference.

Controlling when garbage collection occurs

Garbage collection occurs automatically in PowerBuilder, but
you can use the functions GarbageCollect, GarbageCollectGetTimeLimit,
and GarbageCollectSetTimeLimit to force immediate
garbage collection or to change the interval between reference count
checks. By setting the interval between garbage collection passes
to a very large number, you can effectively turn off garbage collection.


Document get from Powerbuilder help
Thank you for watching.
Was this article helpful?
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x