dispose - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


Algebraic.dispose

allows the expression represented by an Algebraic to be collected by the Maple garbage collector

 

Calling Sequence

Description

Examples

Calling Sequence

void dispose() throws MapleException

Description

• 

The dispose functions allows a Maple expression that is represented by an Algebraic object to be collected by the Maple garbage collector.  Once dispose has been called on an Algebraic, it is an error to call any member function other than isDisposed.

• 

Every Algebraic object represents a Maple expression.  The Algebraic objects keep the corresponding Maple expression from getting collected by the Maple garbage collector.  When the Java garbage collector collects the Algebraic object, the link between it and the Maple expression is broken, and Maple may collect the expression.

  

In some situations the Java garbage collector may be too slow in collecting the Algebraic objects.  When this happens, Maple is unable to reuse the memory and so it must allocate more.  Calling dispose on objects that are no longer needed may fix this problem.

Examples

import com.maplesoft.openmaple.*;

import com.maplesoft.externalcall.MapleException;

class Example

{

    public static void main( String notused[] ) throws MapleException

    {

        String[] mapleArgs = { "java" };

        Engine engine = new Engine( mapleArgs, new EngineCallBacksDefault(), null, null );

        Algebraic a1;

        int i;

        for ( i = 0; i < 100000; i++ )

        {

            a1 = engine.evaluate( "Array( 1..10^4 ):" );

            a1.dispose();

        }

        Numeric n = (Numeric)engine.evaluate( "kernelopts( bytesalloc ):" );

        System.out.println( "Total Bytes Alloc: "+n );

    }

}

Executing this code should produce output similar to the following, with the bytes used messages removed.

Total Bytes Alloc: 6945544

See Also

ExternalCalling/Java/MapleException

OpenMaple

OpenMaple/Java/Algebraic

OpenMaple/Java/Algebraic/isDisposed

OpenMaple/Java/API

OpenMaple/Java/Engine/evaluate

OpenMaple/Java/memory