0

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??

Spike-1002
  • 13
  • 3

1 Answers1

1

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.

Donal Fellows
  • 133,037
  • 18
  • 149
  • 215