
erlang
文章平均质量分 73
zhangzhizhen1988
这个作者很懒,什么都没留下…
展开
-
erlang 如何自定义 behaviour
一.什么是behavior?使用erlang编程的人都知道OTP,而OTP里面创建进程的时候,常用的有四大behaviour, supervisor、gen_server、gen_fsm、gen_event。什么是behaviour?他是做什么用?首先,写这篇文章之前我上谷歌查过人家对behavior的定义,当然,非官方,我一直没找着官方定义,如果有人有一个比较确切的定义,麻烦告诉我,大家原创 2013-01-14 15:44:37 · 6937 阅读 · 0 评论 -
使用rebar构建工程、执行单元测试、自动生成项目文档
原文转自:http://blog.linezing.com/2011/04/rebar%EF%BC%9Aerlang%E6%9E%84%E5%BB%BA%E5%B7%A5%E5%85%B7Rebar是一款Erlang的构建工具,使用它可以方便的编译、测试erlang程序、内联驱动和打包Erlang发行版本。Rebar是一个独立的erlang脚本,所以使用Rebar发布程序非常简单,转载 2013-01-05 19:09:01 · 1991 阅读 · 0 评论 -
dialyzer:erlang代码分析器
Erlang是一种“动态”语言,这会带来一个问题,单元测试不足以证明我写的代码是否足够正确。很难发现动态语言类型错用的问题。静态类型语言倒是很容易找到此类错误,但是Erlang是“动态的”。例如,length/1函数只能处理类型为列表(list)的参数,如果传入的不是列表,比如传入一个atom就会出错,但是程序中这样的代码是能够通过编译的,运气好的话会有一个警告,运气差的话只能在运行时发现出错。例转载 2012-12-21 14:45:45 · 1334 阅读 · 0 评论 -
CentOs下编译安装erlang
我装的R15B02[root@www.linuxidc.com Linuxidc]# wget http://www.erlang.org/download/otp_src_R15B02.tar.gztar -zxvf otp_src_R15B02.tar.gzcd otp_src_R15B02[root@www.linuxidc.com Linuxidc]# yum inst原创 2012-10-08 17:39:31 · 2809 阅读 · 2 评论 -
简记erlang的热更新分析
Erlang原本脱胎于电信行业,Jow Armstrong 在描述Erlang的设计要求时期中就提到了“软件维护应该能在不停止系统的情况下进行。”在实践中,我们也因为这种不停服务的热更新获益良多,终于不用再等到半夜没人的时候再做更新了,对于一些紧急的bug修复,热更新实在是一把圣剑(至秦玩dota的时候喜欢出圣剑),热更新的具体使用,以及它具体的运行过程是怎样的呢? 在我们自己使用热更新之原创 2012-09-21 21:20:16 · 6304 阅读 · 0 评论 -
使用zlib:uncompress(Data)导致的port泄露分析
这次我们碰到了一个问题,疑似port泄露而导致了beam崩溃。我们用erlang:length(erlang:ports()).在服务器控制台执行查看了当前占用端口数:32000+然后自然想到了上限的设置,查看了启动配置:POLL=trueSMP=autoERL_MAX_PORTS=32000ERL_PROCESSES=500000ERL_MAX_ETS_TABLES=原创 2012-09-17 11:05:54 · 2511 阅读 · 0 评论 -
erlang OTP gen_fsm 图解分析
原文链接:http://www.hoterran.info/otp-gen_fsm-sourcecodegen_fsm和gen_server非常的类似, 在gen进程递归调用loop函数的过程中,除有StateData还额外有一个StateName的atom, 它决定了下次执行的函数. 另外一个不同之处是, gen_server程序是由调用进程向gen进程发送消息, 一种cs模式的调用关系转载 2012-09-01 16:31:39 · 4581 阅读 · 0 评论 -
erlang OTP supervisor 图解分析
原文链接:http://www.hoterran.info/otp-supervisor-sourcecode supervisor实际上是基于gen_server的系统进程,监控子进程的退出状态并设置一定的重启机制.init在这个例子里Mod模块是一个sup程序,它的启动会调用supervisor:start_link,而start_link实际上调用的gen_ser转载 2012-09-01 16:26:21 · 5126 阅读 · 0 评论 -
erlang OTP gen_server 图解分析
在阅读erlang的otp源码gen_server.erl的时候,一直想写点什么,用一种最好的方式表达出来,最终却总是没法表达清楚,困惑之余看到这篇文章,作者用图解的方式,非常清晰明了的表达了我一直想表达的东西,下面是原文链接:http://www.hoterran.info/otp-gen_server-sourcecode感谢原创作者热心的分享。阅读OTP源码可以帮助你转载 2012-09-01 16:16:54 · 13484 阅读 · 0 评论 -
erl_crash.dump 的查看
最近想用webtool CrashDumpViewer 查看一下erlang 的崩溃转储dump文件,无奈一直就打不开,报的是这个问题:An error occured:D:\workspace\rpc_monitor-20120425_162740.dump is not an Erlang crash dump我确定我已经按照别人的做法了,我用了firfox浏览器,原创 2012-05-02 13:44:22 · 10275 阅读 · 0 评论 -
erlang的官方文档部分翻译
erlang的八个秘密1. 复杂函数Funs较慢funs的速度比apply/3要慢,它从实现机制上利用了编译器的小伎俩,速度上比apply/3使用元组和大量精巧设计来的慢。2. 列表解析比较慢在以前列表解析是使用funs的方式实现的,因此它的速度是非常慢的。但现在使用递归函数实现,当然,采用尾递归函数,在末尾多加一个列表反转仍然要快很多。这在下一个秘原创 2012-04-06 16:16:59 · 1153 阅读 · 0 评论