erlang
iteye_10262
这个作者很懒,什么都没留下…
展开
-
programming erlang - Distributed 那章的实验
试了下programming erlang distributed 那章的例子,记录一下一. erl -name实验一:我把kvs那个程序放在了A,B两台服务器上,这两台服务器的hostname()都没设置在B服务器上执行了 erl -name bachmozart@erlang.xxxx.com -setcookie abc然后 kvs:start()....2009-03-25 11:56:57 · 203 阅读 · 0 评论 -
看gen_tcp driver源码学写erlang driver
erlang 与外部通信有2种方式:A. 外部port,外部程序通过stdin,stdout与erlang交互B. linkin driver 是erlang 直接调用的方式从效率上看,当然是B的效率最好,一直觉得这个东西是非常有用的,以前也有些idea,请教过yufeng老大,结果被教育了,所以一直不敢乱用,打算从gen_tcp开始学习driver的编写从源码上看,g...2009-10-06 16:09:00 · 152 阅读 · 0 评论 -
erlang 网游服务器端socket设计问题
准备用erlang做网游的服务器端,遇到一个通信层设计的问题erlang socket大多都是使用的被动模式,防止message flood问题系统中会存在两种消息,一种是客户端和服务器的交互信息,就是简单的request-response模式,另外一种是系统游戏过程中产生的广播消息如果采用erlang被动socket模式, recv()方法本身是阻塞等待客户端请求的,同时...2009-09-24 12:03:40 · 149 阅读 · 0 评论 -
gen_server源码杂记
调用gen_server启动的方法gen_server :start_link ( { local, ?MODULE } , ?MODULE , [ ] , [ ] ) .参数分别是Name,Mod,Arg,OptionsOptions里可以设置timeoutgen.erl里的简单小函数取得timeout[code="java"]timeout(Option...2009-09-17 16:12:53 · 171 阅读 · 0 评论 -
inets 的http client在大量请求调用时有错误
试了下inets的http client,调用http:request方法,在单个进程内少量调用,或多个进程内少量调用都没有问题,但是只要调用次数达到几千以上,就会报错错误信息基本就是bad_return_value,invalid version等等不知道有没有人试过 大名鼎鼎的Richard Jones在 A Million-user Comet Application wit...2009-07-21 11:33:31 · 342 阅读 · 0 评论 -
mochiweb 学习笔记2
启动创建好的skeleton时,skel.erl调用application:start(),根据skel.app,启动skel_sup.erl 的supervisor,规格[code="java"]%% @spec init([]) -> SupervisorTree%% @doc supervisor callback.init([]) -> Ip = case os:...2009-06-11 17:44:59 · 143 阅读 · 0 评论 -
mochiweb 学习笔记1
不知为什么,我看书的效率总是比较低,吸收的不多,反而看代码会觉得比较有意思,也能更集中精力,programming erlang看了也2遍了,基本除了语法熟悉了外,对具体应用还是一点都没明白,直到发现了mochiweb,这东西代码好少呀,研究研究,记录下来代码布局 标准的erlang otp目录结构mochiweb本身应该算一个web 服务器的核,然后可以围绕它定制自己的web s...2009-06-10 19:36:14 · 133 阅读 · 0 评论 -
erlang轻松实现memcached binary协议
简单实现了下memcached binary protocol的 get和 set command,体验了下erlang binary语法的强大和方便代码:[code="java"]-module(binary_server).-export([start/0]).start() -> {ok,Listen}=gen_tcp:listen(7777,[binary,...2009-06-04 13:05:29 · 168 阅读 · 0 评论 -
hibernate your gen_fsm process
关于erlang进程hibernate的好处,去过这次erlang大会的同学应该已经都知道了简单的理解:hibernate可以使你闲置的erlang进程马上进行gc,因为进程处于receive状态下是不会gc的我在性能调优时发现,gc对于消息发送速度的影响还是非常大的关于erlang gc问题也可以参看这个[quote]Recently, as part of Ra...2009-12-14 11:37:26 · 148 阅读 · 0 评论 -
修改gen_fsm源码构建更强壮的有限状态机
关于erlang提供的gen_fsm有限状态机模型,可以说是很好很强大,正是有了它,才使erlang编写复杂业务逻辑成为一件轻松愉快的事情但是由于erlang的速错设计原则,我们的状态机进程可能在某些异常下直接退出,这点可能跟我们的需要有点背离最常见的情况是,状态转移中的错误处理问题,如下代码:[code="java"]%% ======================...2009-12-09 14:34:40 · 180 阅读 · 0 评论 -
解释下erlang与flash通信细节
今天花了大半天时间给前端flash同学解释TCP相关的原理和细节,并陪同一起写完了与erlang服务器的通信模块flash socket一般2种,xmlSocket和 socket(binary),xmlsocket基本也是flash自己封装的啦由于服务器是用的erlang,erlang已经提供了处理TCP协议,自动拆解包头的方法,也就是{packet,N}这种用法了,那自然就...2009-11-26 17:06:48 · 181 阅读 · 0 评论 -
ibrowse可用性测试
之前发帖抱怨过erlang inet http client的性能很糟糕并且有严重buglitaocheng同学曾建议使用ibrowse,正好目前有项目需要一个http client,遂下载查看源码学习之(erlang周边项目基本可以放弃只看doc就可以使用的想法)ibrowse启动首先会读取priv下的配置文件,默认为ibrowse.conf格式:{dest, Hostn...2009-11-18 18:21:32 · 233 阅读 · 0 评论 -
tsung源码学习之xmerl
开始规模研究tsung的源代码,代码不多,看起来应该不会太费力,先参考这些资料老大的2篇博客:http://mryufeng.iteye.com/blog/355827http://mryufeng.iteye.com/blog/355716其中还提到一个writing tsung pluginhttp://www.process-one.net/en/wiki/Writi...2009-10-25 14:10:23 · 195 阅读 · 0 评论 -
gen_tcp async accept大致流程
erlang 调用 gen_tcp:accept时是会阻塞的,包括后续的gen_tcp:recv也是,但是这个阻塞实际是在erlang这边 receive等待driver返回消息,并不是阻塞在driver上,driver是不能阻塞的,这个mryufeng老大也很早就跟我说过,当时没明白,现在终于理解了看下erlang 这边是如何做的[code="java"]accept0(L, T...2009-10-07 14:33:22 · 281 阅读 · 0 评论