Spike-1002
Spike-1002

Reputation: 13

A possible method to completely free memory in TCL?

Is there a way to completely free memory in TCL, meaning to reallocate it back to the operating system without closing the tclsh.85 process??

Upvotes: 0

Views: 368

Answers (1)

Donal Fellows
Donal Fellows

Reputation: 137637

If you're doing this because you're about to unload the tcl DLL from your process, there's the Tcl_Finalize() API call. Otherwise, no, there's no way to do it by default. If you build Tcl with the PURIFY symbol defined (named for a commercial tool that does memory analysis) then Tcl will use the system memory allocator instead of its own high-performance thread-aware allocator; that might be able to release memory back to the OS. Or it might not; it's out of Tcl's hands entirely.

There's no script-level API for this at all. Most of the time, if a process uses a lot of memory it's either going to exit soon, going to reuse that much memory, or can rely on the OS just paging the unused memory out.

Upvotes: 1

Related Questions