gpt4 book ai didi

bash - Bash 如何管理它的内存?

转载 作者:行者123 更新时间:2023-11-29 09:03:32 25 4
gpt4 key购买 nike

例如,如果我声明一个变量a=8:

  • 它存储在哪里?在正在运行的进程堆中?
  • 什么时候免费?
  • 谁负责?

最佳答案

这样的 Bash 变量
a=8

存储为堆内存,除非用户显式unset 变量,否则它们永远不会被删除——所以本质上,如果需要删除,用户有责任删除它。

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

bash version 4.4重写了一些哈希表,flush_hash_table 不再存在,而是替换为函数hash_flush

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

关于bash - Bash 如何管理它的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41537802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com