在 TCL 中完全释放内存的可能方法?

A possible method to completely free memory in TCL?

有没有办法在TCL中完全释放内存,意思是在不关闭tclsh.85进程的情况下将其重新分配回操作系统?

如果您这样做是因为您要从您的进程中卸载 tcl DLL,那么有 Tcl_Finalize() API 调用。否则,不,默认情况下没有办法做到这一点。如果您使用定义的 PURIFY 符号构建 Tcl(以进行内存分析的商业工具命名),那么 Tcl 将使用系统内存分配器而不是它自己的高性能线程感知分配器; 可能 能够将内存释放回 OS。或者它可能不会;它完全不在 Tcl 的手中。

没有 脚本级别 API 可用于此。大多数时候,如果一个进程使用大量内存,它要么很快退出,重新使用那么多内存,要么可以依靠 OS 将未使用的内存分页出来。