首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨语言内存存储

跨语言内存存储
EN

Stack Overflow用户
提问于 2015-08-07 21:38:58
回答 1查看 85关注 0票数 0

我刚开始编程,最近发现了一些语言中的对象和变量的存储是如何工作的(c++,java,.)。但是当我(在随机站点中)读到存储如何在其他语言(如ruby )中工作时,显然堆栈的概念并不存在,并且对象和变量保存在堆中。这是真的吗?

如果是这样的话,那么像堆栈或(其他语言的.data,.bss )这样的段是否物理上不存在?仓库是怎么工作的?我不太懂记忆片段。

编辑:我不是在问每种语言的记忆片段,我只是想知道为什么一个片段在一种语言中存在,而在另一种语言中却不存在。(片段不像.那样存在.片段?类似于RAM的不同部分)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-08 01:23:37

Ruby语言规范没有提到堆栈和/或堆。无论某个特定的Ruby实现是否碰巧使用堆、堆栈,还是两者都使用,或者两者都不完全取决于实现者。

通常,Ruby实现将每个进程使用一个堆,每个线程使用一个堆栈,每个光纤使用一个轻量级堆栈,但这是特定Ruby实现的私有内部实现细节,不向程序员公开,也不以任何方式保证,即它可以在任何时候不经通知而更改。并不是所有的实现都是如此。MagLev对于MagLev集群中的所有进程(和所有计算机)都有一个单一的分布式持久堆。红衣主教没有堆栈,它使用堆上分配的延续。我相信SmallRuby对所有线程都使用单一的意大利面条堆栈。

请注意,这并不少见。例如,C#语言规范也没有提到堆或堆栈。Java规范或C++标准也是如此。

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

https://stackoverflow.com/questions/31887029

复制
相关文章

相似问题

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