如何搞垮Erlang
来源:互联网 发布:网络的利与弊作文800字 编辑:程序博客网 时间:2024/05/16 06:04
原文:How to Crash Erlang
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
- 看我怎么搞垮erlang
- 如何搞垮他的数据库——谈Oracle安全
- 投票丨鹿晗关晓彤曝光恋情 是如何搞垮新浪服务器的
- 如何调试Erlang程序
- erlang 如何自定义 behaviour
- 如何调试Erlang程序
- erlang 如何连接mysql
- [Erlang]如何使用NIF
- [Erlang]如何在Erlang中使用SSL
- 如何使用erlang mnesia 数据库
- [Erlang]如何遍历当前目录?
- [Erlang]port(gen_tcp)如何并行?
- erlang对比golang,如何选择?
- erlang中如何调试程序?
- [Erlang]如何在Erlang中将对list进行json编码?
- [Erlang]Erlang与Java如何进行节点通信
- Erlang
- hbase权威指南: store file合并(compaction)
- mysql索引视图触发器
- 分享关于mobile流量平台的干货
- ubuntu设置时区 更新时间 以及 修正CMOS的时间
- [Android] ImageView.ScaleType设置图解
- 如何搞垮Erlang
- Linux内核-循环链表
- DRP项目期间总结
- cocos2d-x 数学函数、常用宏粗整理
- IOS实现本地通知
- 主从(master/slave)默认引擎不一致导致复制失败
- 修改gcc、g++版本
- 精简VLC并编译成静态库(vs2005)
- java.lang.ClassCastException: $Proxy17 cannot be cast to *.*.*.service.impl.DeviceService