erlang知识库 |
||
|
最近更新文章
进入Erlang的世界
进入Erlang的世界 作为程序员,我们曾经闻听很多“业界动态”,“技术革新”,曾经接触很多“高手箴言”,“权威推荐”。这些正确与否,都已成过去! 现在,让我们迎接Erlang盛宴! 经历 2007年11月在koders.com搜索代码时,发现*.erl格式的源文件,感叹开发语言的花样百出,此时,我觉得erlang是一个丑陋的小家伙,看名字就没有对它提起多少兴趣。 2008年初的时候,公司的项 ...
Erlang中的half-sync/half-async和Leader/Followers 模式
http://www.iteye.com/article/60414 里面,谈到了半同步/半异步和领导者/追随者模式,在Erlang里面可以很简单得实现它 下面看看 half-sync/half-async 的例子 start() -> case gen_tcp:listen(80, [binary, {nodelay,true}, {packet, 0}, {reuseaddr, true ...
Erlang网络编程-Binary
在Erlang里面,Binary支持强大的模式匹配,这为编写网络通讯程序提供了便利。 比如一个协议串,格式如下 HEADER(2 Bytes) ID (1 Byte) MESSAGE(10 Bytes) 可以这样匹配 <<Header:16, Id:8, Message:10/binary-unit:8>> 有一些协议,头部是接下来数据的长度,这样就更简单了 <&l ...
Erlang网络编程-packet参数
gen_tcp:listen(Port, Options),Options 为一个参数列表 之前介绍过 {active, Boolean} 这个 opt,现在介绍一下 {packet, PacketType} 引用{packet, PacketType} (TCP/IP sockets) Defines the type of packets to use for a socket. The f ...
Erlang 的分布通讯安全策略
Erlang的分布式通讯安全策略,可以归结为 All or None。要不拥有全部的权限,要不就完全没有。 它的节点安全设置,是通过一个magic cookie来实现的。这个文件默认放到 $HOME/.erlang.cookie ,文件内容是字符串。 当启用分布通讯的时候,这个magic cookie就很重要了。如果在命令行里面带上 -setcookie ,则在当前节点使用这个cookie值,否 ...
使用Erlang Profile工具进行性能分析
Erlang tools lib中包含三个用于性能分析的工具:cprof,eporf和fprof。 cprof 提供函数调用计数,其对系统的性能影响最小 eprof 提供函数运行时间的百分比 fprof 通过将trace存储到文件,提供函数调用计数及运行时间统计信息 这里我们主要介绍fprof,首先其提供的信息最为详细,其次因为将trace存储到文件中,我们可以进行较长运行时间的性能分析 fpr ...
Erlang 中的Module级别热部署
Java里面要实现Code Replacement,也就是什么热部署,通常是使用ClassLoader机制。不久前看到了一篇Google的Paper,里面讲解的C++代码热部署更为复杂。 在Erlang里面,实现Code Replacement其实很简单,最方便的方法可以参考 《Erlang Reference Manual》的12.3: -module(m). -export([loop/0]) ...
erts运行期内存使用情况查看
翻erlang的代码发现erlang对memory的管理非常重视 内置了多种内存allocator: B: binary_alloc D: std_alloc E: ets_alloc F: fix_alloc H: eheap_alloc L: ll_alloc M: mseg_alloc S: sl_alloc T: temp_alloc Y: sys_a ...
erl_call erlang cnode 功能强大
otp_src_R11B-5\lib\erl_interface\src\prog\erl_call.c 是个不错的工具, 就是ei的前端能够通过cnode给erlang的后端发各种请求。 具体的见 主题: 如何把erlang应用在项目中? http://www.iteye.com/topic/100425 where: -a apply(Mod,Fun,Args) (e.g -a 'erla ...
erlang inet:setopts 未公开选项
inet:setopt有packet设置选项: {packet, PacketType} (TCP/IP sockets) Defines the type of packets to use for a socket. The following values are valid: raw | 0 No packaging is done. 1 | 2 | 4 Packets consi ...
方便调试erlang程序的脚本
经常的时候看大型工程的时候 碰到一二个地方实在不明白他是如何运作的 这时候最好的工具就是debugger 如gdb,的backtrace 可以得到完整的函数调用栈。在linux下推荐使用ddd, 俺的centos5 下标准版本没有安装ddd 顺手下载个安装就好了(标准版本却个motif-devel yum下就好)。ddd图形界面方便查看函数和变量,还有点击跳转功能。 附上几个调试erlang的脚本, ...
Erlang: 当你net_adm:ping(Node)的时候发生了什么?
当你net_adm:ping(Node)的时候发生了什么? 这个涉及到很复杂的流程。让我为你解刨: 这个流程很长而且在erlang代码和c代码里面窜来窜去,重要的点 我用红字标注 请各位耐心。 1. net_adm.erl: ping(Node) when is_atom(Node) -> case catch gen:call({net_kernel, Node}, '$gen_call' ...
erlang driver和热部署(重要)
erlang的热部署包括2个方便的 beam(.beam)级别的和driver(.dll .so)级别的. beam级别的就简单。但是driver级别的就相对复杂很多。 先看下erl_ddll的说明: Loading and reloading for code replacement This scenario occurs when the driver code might need re ...
erlsnoop erlang消息监听器 调试erlang网络程序利器
在erlang的邮件列表上看到: Have you tried putting a snoop to see whether the delay is on the sending/receiving side? This might be useful: http://www.erlang.org/contrib/erlsnoop-1.0.tgz 去http://www.erlang.org ...
file:read_file的注意细节
arbow发现的问题如下: 4> file:read_file("/proc/cpuinfo"). {ok,<<>>} 11> {ok, IoDevice} = file:open("/proc/cpuinfo", [binary]),file:read(IoDevice, 1024). {ok,<<&quo ...
群组知识库热门文章
- 44295 进入Erlang的世界
- 11562 gen_server入门
- 11530 如何写超强伸缩性的多游戏玩家服务器
- 8621 Erlang类型及函数声明规格
- 6362 使用etop查看系统中进程信息
最新评论
我是erlang 菜鸟,弱弱的问一下,erlang帮助文档,那有怎么用,连 Mod名、Func名,是什 ...
wrj913 评论了 Programming Erlang读书笔记8: Concurrency ...
wrj913 评论了 Programming Erlang读书笔记8: Concurrency ...
不明白为什么第一个例子handler(Socket)中close(Socket)后还调用了handle ...
erlangguy 评论了 Erlang中的half-sync/half-async和Leader/F ...
erlangguy 评论了 Erlang中的half-sync/half-async和Leader/F ...
event manager本质上是维护一个{Module, State}对的list,每个Module ...
erlangguy 评论了 OTP Design Principles: Gen_Event Behavio ...
erlangguy 评论了 OTP Design Principles: Gen_Event Behavio ...