signature MLTON_GC =
   sig
      val collect: unit -> unit
      val pack: unit -> unit
      val setMessages: bool -> unit
      val setSummary: bool -> unit
      val unpack: unit -> unit
      structure Statistics :
         sig
            val bytesAllocated: unit -> IntInf.int
            val lastBytesLive: unit -> IntInf.int
            val numCopyingGCs: unit -> IntInf.int
            val numMarkCompactGCs: unit -> IntInf.int
            val numMinorGCs: unit -> IntInf.int
            val maxBytesLive: unit -> IntInf.int
         end
   end
  • collect ()

    causes a garbage collection to occur.

  • pack ()

    shrinks the heap as much as possible so that other processes can use available RAM.

  • setMessages b

    controls whether diagnostic messages are printed at the beginning and end of each garbage collection. It is the same as the gc-messages runtime system option.

  • setSummary b

    controls whether a summary of garbage collection statistics is printed upon termination of the program. It is the same as the gc-summary runtime system option.

  • unpack ()

    resizes a packed heap to the size desired by the runtime.

  • Statistics.bytesAllocated ()

    returns bytes allocated (as of the most recent garbage collection).

  • Statistics.lastBytesLive ()

    returns bytes live (as of the most recent garbage collection).

  • Statistics.numCopyingGCs ()

    returns number of (major) copying garbage collections performed (as of the most recent garbage collection).

  • Statistics.numMarkCompactGCs ()

    returns number of (major) mark-compact garbage collections performed (as of the most recent garbage collection).

  • Statistics.numMinorGCs ()

    returns number of minor garbage collections performed (as of the most recent garbage collection).

  • Statistics.maxBytesLive ()

    returns maximum bytes live (as of the most recent garbage collection).