首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >取消分配/免费/发布功能

取消分配/免费/发布功能
EN

Stack Overflow用户
提问于 2014-05-17 12:50:56
回答 4查看 118关注 0票数 1

是否有可能释放一个函数?假设您有一个只运行一次的庞大初始化函数,那么在调用它之后是否可以释放它,并使用这个额外的存储空间?我主要对C感兴趣,但如果任何其他语言都有有趣的行为,可以随意发布。

我知道没有在堆中分配函数,因此您可能无法回收它们的内存,但这对我来说确实是一种浪费。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-05-17 12:57:53

使用这些语言特性是不可能的。

但是,根据您所使用的系统,操作系统可以通过正常的内存管理技术来单独完成这些操作。(如果是这样的话,那是“偶然”的。)

让我解释一下:程序被映射到内存中并运行。有一段时间没有使用的代码将被抛出内存。数据被放入磁盘上的交换区域,以便以后能够“回收”它,但是代码总是出现在可执行文件中,如果需要的话,可以从其中获取代码。

当然,并不是所有的系统都会出现这种情况,但是Linux和也是这样工作的。

票数 1
EN

Stack Overflow用户

发布于 2014-05-17 15:45:54

使用python,您可以在程序的生命周期内创建类和函数,并删除它们。但是,由于在实现语言(cPython使用C)上有一些样板,所以在这个应用程序中它不是一个特别有用的概念,所以您会丢失内存。

票数 1
EN

Stack Overflow用户

发布于 2014-05-18 08:45:40

您可以使用共享库(例如dll)来实现这一点。用它们卸下它们..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23711561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档