初学erlang时总觉得它原本应是健壮的,但一想任何编程语言都会因为人为的失误造成崩溃,以下是在chinaerlang上看到的:
1. 耗尽atom

因为atom是不会被垃圾回收的,所以如何程序运行时生成太多的atom,(例如在无穷循环里,每次循环都调用几下 list_to_atom),atom table会被塞满,然后erlang就当掉了

2。进程的耗尽
如果你spawn了太多unlink的不会终止的进程,而且这些进程你都不保存它们的Pid,这样你就失去了和这些进程的联系(和引用),这可以看成是进程泄漏,(有点像内存泄漏),随着越来越多的进程泄漏。。。,然后erlang就当掉了

3。洪泛消息到一个进程的mailbox
不断给某个进程发送消息(而不用等待其回复时),如果接收消息的这个进程的receive语句写得不好,比如模式匹配有漏(或有错),这个进程就会漏掉许多的消息,这些被漏掉的消息不断的在该进程的mailbox中堆积,最后mailbox耗尽了系统的内存,然后erlang就当掉了

4。在一个单独的进程中创建了太多的binary数据
超过64字节的binary数据是在进程之外的堆上分配的,通过引用计数进行控制,引用计数表示有多少进程访问此bianry数据。当对一个进程进行垃圾回收时,没有被引用的数据会被删除,但只有垃圾回收时才会删除。所以可能在垃圾回收前由于堆中就堆满了二进制数据而使erlang耗尽内存崩溃。这种情况,至少在理论上,是存在这种可能性的。

这些原本是说明erlang在何种情况下会当掉,也算是对给我们提个醒。

转载于:https://www.cnblogs.com/xiayong123/archive/2011/10/01/3717538.html

erlang注意(经典)相关推荐

  1. 2011年3月华章新书书讯:ASP.NET本质论、Erlang编程指南、SNS网站构建

    ASP.NET本质论 深入剖析ASP.NET的运行机制和工作原理,带你领略ASP.NET的本质和精髓 包含大量开发技巧和最佳实践,为开发稳定而高效的ASP.NET应用提供绝佳指导 SNS网站构建 提供 ...

  2. 消息队列面试经典十连问

    前言 金三银四即将来临,整理了十道十分经典的消息队列面试题,看完肯定对面试有帮助的,大家一起加油哈~ 什么是消息队列 消息队列的应用场景 消息队列如何解决消息丢失问题 消息队列如何保证消息的顺序性. ...

  3. 专家访谈:为什么我们需要Erlang

    专家访谈:为什么我们需要Erlang --专家畅谈Erlang与并行计算和云计算 如今的计算环境正面临着两大变革:CPU的多核化和云计算.行业内人士预测,未来10年内,普通用户使用的计算机的CPU将达 ...

  4. [Erlang 0014]Erlang垃圾回收机制

    前面的Erlang杂记中我们简单提到过Erlang的垃圾回收机制:1.以进程为单位进行垃圾回收 2.ETS和原子不参与垃圾回收.今天我们继续这一话题,关注更多关于细节. 在Erlang的官方文档中,关 ...

  5. 【Java 多线程】多线程带来的的风险-线程安全、多线程五个经典案例

    日常开发中如果用到多线程编程,也一定会涉及到线程安全问题 线程安全这个问题就不太好理解 正因为如此,程序猿们才尝试发明出更多的编程模型来处理并发编程的任务 例如:多进程.多线程.actor.csp.a ...

  6. 数据结构经典案例_计算机领域必读的经典书籍清单

    由于计算机科学是一个庞大的学科体系,在学习的过程中要对这个体系的知识都有一定的了解,下面按照分类和体系进行说明,以及推荐一些书籍清单. 先来一段坊间流传的打油诗(手动狗头保命),可见算法和数据结构有多 ...

  7. python入门经典-Python入门经典

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! # 有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数? 都是多少? ...

  8. 经典游戏服务器端架构

    文章目录 一. 讨论的背景 二. 游戏服务器架构的要素 三.核心的三个架构 四. 游戏服务器模型的进化历程 五.分服模型 1.模型描述 2.调度架构 1.单进程游戏服务器 2.多进程游戏服务器 3.内 ...

  9. 经典游戏服务器端架构概述

    12 经典游戏服务器端架构概述 架构的分析模型 一. 讨论的背景 ​ 现代电子游戏,基本上都会使用一定的网络功能.从验证正版,到多人交互等等,都需要架设一些专用的服务器,以及编写在服务器上的程序.因此 ...

最新文章

  1. UML部署图(转载)
  2. 核心算法缺位,人工智能发展面临“卡脖子”窘境
  3. 大话数据结构:线性表(1)
  4. Qt Designer的UI文件格式
  5. 几个常用shell脚本命令
  6. ASP.NET Core 中断请求了解一下(翻译)
  7. 《TableStore最佳实践:GEO索引打造店铺搜索系统》
  8. pytorch .item_60分钟入门PyTorch,官方教程教授第一个深度学习模型(附链接)
  9. python解题_python实现用户答题功能
  10. 帮助你在移动设备上生成倾斜控制(重力控制)的旋转效果jQuery插件 - lenticular.js...
  11. Java基础:什么是返回对象
  12. 现任明教教主DM×××的3G链路备份
  13. eWebEditor浏览器兼容 ie8 ie7
  14. android使用遥控器模拟鼠标拖拽操作
  15. JDK 8 foreach的用法
  16. Android 获取外网IP地址
  17. 微软在文件夹里插广告,把用户恶心到了,官方:试验功能,不小心推送了!...
  18. 删除桌面上的两个IE图标
  19. HDR视频色调映射算法(之四:Display adaptive TMO)
  20. 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005

热门文章

  1. 今天有个微信好友咨询我
  2. 思维方式是看待事物的角度、方式和方法,它对人的言行起到决定性作用
  3. 这些年,网商基本上靠薄利多销获利
  4. 生意做到一定规模,老板想面面俱到,亲力亲为就不可能了
  5. 你用python做过哪些好玩的事情?
  6. 区块链开发入门书籍和文档
  7. 5.11socket选项
  8. 谷歌浏览器怎么查找和改变编码格式
  9. sql二进制转十进制_了解SQL十进制数据类型
  10. gdpr合规性测试_使用生产数据在GDPR后世界进行测试