Reputation: 13
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
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