加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Bash如何管理自己的记忆?

发布时间:2020-12-15 21:19:22 所属栏目:安全 来源:网络整理
导读:例如,如果我声明变量a = 8: 它存储在哪里?在运行进程堆? 什么时候免费? 谁对此负责? 解决方法 Bash变量就像 a=8 存储为堆内存,除非用户明确取消设置变量,否则永远不会删除它们 – 因此实际上,如果用户需要删除,则用户负责删除它. 在bash 2.05中,变量通
例如,如果我声明变量a = 8:

>它存储在哪里?在运行进程堆?
>什么时候免费?
>谁对此负责?

解决方法

Bash变量就像

a=8

存储为堆内存,除非用户明确取消设置变量,否则永远不会删除它们 – 因此实际上,如果用户需要删除,则用户负责删除它.

在bash 2.05中,变量通过哈希表进行内部管理,其中获取哈希表的内存并通过“malloc”和“free”释放.从哈希表中删除元素不会立即从哈希表中删除该元素,但会通过在执行中的关键点调用的垃圾收集flush_hash_table来清除它.

Bash version 4.4重写了一些哈希表,而flush_hash_table不再存在,但被一个functionhash_flush替换.

因此,不同的版本和端口可能会有不同的行为,您不应该依赖于内存实际上是立即释放,即使您没有设置,或者在编写shell脚本时期望任何特定的内存行为

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读