首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Smalltalk映像中的对象数量有上限吗?

Smalltalk映像中的对象数量有上限吗?
EN

Stack Overflow用户
提问于 2013-10-31 23:05:58
回答 2查看 266关注 0票数 6

我正在进行一个NLP实验,在这个实验中,概念是一个系统中的代理,其目的是生成由新概念组成的紧急属性(对于那些不知道出现是什么的人来说,这里有一个链接)。Smalltalk (特别是法老方言)似乎是这种应用程序的理想选择,因为我可以轻松地创建完全封装的概念对象,这些对象作为独立代理相互关联,而且SmallTalk允许我在系统运行时检查系统的状态。

我担心的是,如果存在太多的对象,并且所有的对象都相互发送消息,系统是否会开始窒息。理论上,我的实现可能会产生数百万的概念对象,如果系统不能处理这么大的事情,我不想花时间在SmallTalk中解决这个问题。

  1. 对于SmallTalk图像中活动对象的数量是否存在限制因素(软件因素,而不是硬件因素)?
  2. 系统能处理数百万聊天对象的系统中可能存在的消息流量吗?

提前感谢您的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-31 23:24:49

我相信,法老内部对象指针的内部工作大小仍然是32位。有64b版本的传言,但在64b机器上运行32b虚拟机是一回事,而通过虚拟机运行64b是另一回事。

因此,这里有一个隐含的限制,但仍然有“数百万”物体的空间。开始进入“上百万人”的行列,你很可能会遇到一些限制。

最终拥有数以百万计的对象并不是一个真正的问题,现在它转移到控制线程,而法老在这种情况下不会做太多的线程处理。因此,真正需要的是如何拥有多少实际不同的上下文,而不一定是对象本身。

拥有数以百万计的对象相互交谈并不是什么大不了的事情,您只需查看底层VM中传递的任何消息,以限制原始性能。法罗相当快,但它不是Java快。对你来说是否足够快,你就可以回答了。

我也说不出法罗GC如何处理数百万活的物体,我只能说这是2013年,Squeak (法老的基础)从90年代中期开始,GC技术已经相当成熟,我不怀疑法罗的GC在这方面非常可怕。

我只会做一些微基准,并为自己尝试。

票数 3
EN

Stack Overflow用户

发布于 2013-10-31 23:24:17

关于1:对象的数量受到虚拟机可用的虚拟地址空间的限制--按照标准构建,虚拟地址空间只有几百MBs。我当前的Squeak映像包含超过350万个处于空闲状态的Object实例--这将给您一个可能的印象。

关于2:我的Squeak图像在我的最新英特尔核心i7 2620 M上每秒发送大约2600万条信息(当然,它只使用一个核心)。

然而,我怀疑你是否会对你目前的做法的结果感到满意。你说过要检查系统的状态--这在Squeak/法老中是非常棒的--但是你不能(手动)检查数百万个物体的状态。但话又说回来,我不知道你到底在做什么;)

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

https://stackoverflow.com/questions/19718142

复制
相关文章

相似问题

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