`
mryufeng
  • 浏览: 982325 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ets为什么要设计成 内容不参与GC

阅读更多
原来所有的特性设计都是个妥协的过程哦。。。

Den 2006-12-23 01:16:34 skrev Yariv Sadan <>:

> This is all very interesting to me because the ets interface makes it
> seem as if an ets table is basically a dict hidden behind a
> gen_server, but ets actually has unique concurrency characteristics
> that can't be implemented in pure Erlang.

Well, they _can_, but it's not going to be nearly as efficient.
The difference will be reduced with SMP, since locking will
be required for ets. In the non-SMP version, no locking is
required, since all ets operations are in fact serialized by
the single scheduler.

To further close the gap, one can abstain from using named
public tables. In order to implement named public tables
in a pure erlang version, you either have to add a name
server, or come up with a naming scheme that maps ets
names to process names, and build atoms at runtime, or
have one single process that holds all tables (and keeps
a dictionary mapping names to table ids. The last option
will cause a terrible GC problem if there are lots of
large tables.

For an anonymous table, a gen_server using dict is not much
worse than ets, except in certain situations. For example
if you build a table very quickly, the table server will
cause very rapid memory growth due to the copying GC. This
doesn't happen with the native ets implementation, since
there is no GC of ets objects. Also, if lots of data keeps
changing in the table, GC will be a problem since much of
the table will always be scanned. If the table is mostly
static, the majority of the data will end up on the
"old_heap" and not be scanned very often.

One could say that whole tables are GC:d, though, since
they are automatically removed when the owner process dies.
What all this boils down to is that one of the main
benefits of ets is that it provides non-GC:d data storage
for Erlang processes.


BR,
Ulf W
--
Ulf Wiger


分享到:
评论
1 楼 mryufeng 2009-08-12  
old_heap里面的对象是指在上一轮的gc中存活下来的对象。。。

相关推荐

    ETS基板设计建议以及最佳结构

    ETS基板设计是电子行业中一个关键的环节,它涉及到电路板的性能、稳定性和成本。在本设计建议中,我们将探讨ETS基板的最佳结构和设计规范,以优化其功能和减少潜在的问题,如翘曲。 首先,我们关注的是基板的铜层...

    ETS5 版本ETS5.7.5(官网下载)

    ETS5,全称为Engineering ToolSoftware 5,是KNX协会官方推出的一款专业级的智能建筑控制系统编程工具。这款软件主要用于设计、配置、调试以及维护基于KNX标准的智能家居和楼宇自动化系统。版本5.7.5是ETS5的一个...

    ETS5 中文免费 试用

    ETS(Electrical Transmission System)5是ETS系列的最新版本,专为专业工程师设计,帮助他们高效地创建、编辑和管理KNX系统的配置。 在“ETS5中文免费试用”中,重点在于ETS5的中文界面和免费试用特性。对于中国...

    ETS5 最新调试教程视频

    ETS5(Engineering Tool Software Version 5)是KNX协会推出的一款强大的工程工具软件,用于设计、配置、调试和诊断基于KNX技术的智能建筑控制系统。KNX是一种国际标准(ISO/IEC 14543-3)的楼宇自动化通信协议,...

    ETS 5.6.6 和谐版

    这个版本主要是为教育和学习目的而设计的,提醒用户在商业环境中应使用官方正版软件,以确保合法性和获得全面的技术支持。 KNX(欧洲安装技术)是一种国际标准(ISO/IEC 14543-3),广泛应用于建筑自动化,包括智能...

    ETS 5.6.5安装文件包

    总之,ETS 5.6.5是KNX系统设计和调试不可或缺的工具,其丰富的功能和改进为专业工程师提供了高效的工作环境。通过熟练掌握这个软件,你可以实现智能建筑的无缝集成,提升建筑能效,创造更舒适的生活和工作环境。

    ETS300_364手册

    ETS300_364手册是一份详尽的文档集合,主要针对ETS300与ETS364测试机的使用和维护。这个压缩包包含26个PDF文件,涵盖了从硬件配置到软件系统,再到测试程序开发的全方位内容。下面我们将深入探讨这些关键知识点。 1...

    ETS v5.7.2 中文演示版(支持5个项目的设备)

    5. **文档生成**:完成设计和配置后,ETS能自动生成详细的项目报告和图纸,为工程交付和后期维护提供清晰的参考。 6. **兼容性**:ETS v5.7.2 支持5个项目的设备,这意味着对于小型至中型的项目,用户无需购买额外...

    ets5.5.4中文版

    Ets5 V5.5.4简体中文版下载。Ets5 V5.5.4简体中文版下载。Ets5 V5.5.4简体中文版下载。Ets5 V5.5.4简体中文版下载。

    Ets5 v5.5.2.rar

    ETS5(KNX Engineering Tool Software)是KNX协会推出的一款专业的智能家居控制系统编程软件,主要用于设计、配置、调试和诊断基于KNX技术的智能建筑系统。KNX是一种国际标准(ISO/IEC 14543-3),广泛应用于楼宇...

    ETS 操作手册

    ETS,全称可能是“Enterprise Textile System”或特定领域的专有名词,在此上下文中,它似乎是一个专为制衣行业设计的操作系统或软件平台。这个“ETS操作手册”是为那些在服装产业工作的人准备的,旨在帮助他们理解...

    KNX编程软件 ETS5 专业版本 5.7.2

    ETS5(Engineering Tool Software)是KNX协会官方推出的专业编程软件,用于设计、配置和调试基于KNX技术的智能家居系统。这个版本5.7.2是经过精心优化的,特别适合中国用户,因为它包含了中文包,使得整个操作界面...

    前端开源库-ets

    【前端开源库-ets】,全称为"Extract and Translate Strings",是一个专为前端开发者设计的开源工具。这个库的主要功能是帮助开发者有效地管理和处理应用中的字符串资源,尤其是在多语言环境下的本地化工作。ets库将...

    ETS(PHP模板系统)

    ETS,全称Easy Template System,是一款专为PHP设计的简易模板系统。相比于其他知名的模板引擎如Smarty,ETS强调的是简洁性、灵活性以及高效性。它旨在让开发者能够更轻松地将业务逻辑与视图层分离,提高代码的...

    KNX编程软件 ETS5 Professional 版本 5.6.6(官网下载)

    ETS5(Engineering Tool Software)是KNX协会官方推出的编程软件,专为KNX智能建筑控制系统设计。它提供了全面的功能,让专业工程师能够设计、配置、调试和诊断基于KNX的自动化系统。版本5.6.6是这个系列的一个重要...

    ETS最新版软件仿真软件

    ETS(Engineering ToolSet)是KNX协会官方推出的专业软件,用于设计、配置和调试基于KNX/EIB(欧洲安装总线)智能家居控制系统。这个“ETS最新版软件仿真软件”是针对KNX系统的最新版本,旨在提供高效且精确的工程...

    KNX编程软件 ETS5 Professional 版本 5.7.6

    ETS5 Professional是KNX协会官方推出的编程软件,用于设计、配置和调试基于KNX技术的智能家居和楼宇自动化系统。版本5.7.6是该软件的一个稳定更新,它提供了丰富的功能和完善的技术支持。 KNX(欧洲建筑总线)是一...

    KNX编程软件 ETS5 Professional 版本 5.7.4(官网下载)

    ETS5 Professional是KNX编程软件的一个重要版本,用于设计、配置和调试基于KNX技术的智能家居和楼宇自动化系统。KNX是一种国际标准(ISO/IEC 14543-3),它允许不同厂商的设备在一个网络中互相通信,实现照明、温控...

    KNX调试软件ETS3附使用说明书.zip

    ETS3(EIB Tool Software 3)是一款专用于KNX系统的调试软件,由德国KNX协会开发,是KNX技术入门和专业应用的重要工具。KNX(欧洲安装总线)是一种全球公认的智能家居和楼宇自动化标准,它允许各种设备在同一个网络...

    ETS3安装使用说明1

    ### ETS3安装使用说明详解 #### 一、软件安装 **1.1 安装启动** - **启动安装:** 打开`Ets30f`文件夹,找到并运行`Ets3ProSetup.exe`来启动安装过程。 **1.2 语言设置** - **语言选择:** 在出现的语言选择...

Global site tag (gtag.js) - Google Analytics