- 浏览: 337677 次
- 性别:
- 来自: 北京
最新评论
-
perfect_control:
真的很详细,一些东西很容易被我忽略掉了
使用fprof进行性能分析 -
leeyisoft:
http://www.erlangqa.com/ 怎么变成 “ ...
Erlang问答网站,欢迎各位提出问题,解答问题。 -
simsunny22:
4年之后我才看到 慢慢的干货
Erlang服务器内存耗尽bug跟踪过程 -
爱死我:
...
使用etop查看系统中进程信息 -
宋兵甲:
在跑这个服务的时候,每秒建立一个客户端连接,连续建立10000 ...
自己写一个tcp 通用服务器
文章列表
rabbitmq
的代码中包含一个gen_server2
, 其对Erlang OTP中的gen_server进行了一些优化.
gen_server.erl
loop(Parent, Name, State, Mod, hibernate, Debug) ->
proc_lib:hibernate(?MODULE,wake_hib,[Parent, Name, State, Mod, Debug]);
loop(Parent, Name, State, Mod, Time, Debug) ->
...
erl node启动方法
short name:
erl -sname Name
erl -sname Name@ShortHost
longname:
erl -name Name
erl -name Name@ShortHost
erl -name Name@FullHost
说明:
Name :: atom() || string()
ShortHost :: atom() || string(), 不可含有"."。比如"myhost"
FullHost :: [ShortHost()] || Ip, 比如"test ...
Nitrogen web framework 入门
Author:
litaocheng@gmail.com
Data:
2009-1-23
Version:
0.1
目录
1 概述
2 特性
3 期待
4 术语(Glossary of Terms)
5 应用的结构
6 一个简单的例子
7 更多阅读
1 概述
Nitrogen是一个使用Erlang开发的Web Framework
2 特性
概述
CouchDB,大家或多或少都听说过。它到底有什么特性,适合哪些应用场景,和我们常用的关系型数据库有什么区别?
这些问题,可能我们心里都不是非常清楚。在以前的Blog中(PS,不是在javaeye哦),我提及了几次CouchDB,但是仅 ...
Erlang tools lib中包含三个用于性能分析的工具:cprof,eporf和fprof。
cprof 提供函数调用计数,其对系统的性能影响最小
eprof 提供函数运行时间的百分比
fprof 通过将trace存储到文件,提供函数调用计数及运行时间统计信息
这里我们主要介绍fprof,首先其提供的信息最为详细,其次因为将trace存储到文件中,我们可以进行较长运行时间的性能分析
fprof使用
1,fprof:start().
2,
fprof:apply
fprof:profile
fprof:analyse
OR
...
这两天在调试程序,今天刚刚去除了一个小bug:使用inets http client进行Post请求时,mochiweb 总是接收错误,开始怀疑json encode错误,否决;后来想到是不是http request错误呢?认真查看文档:
request(Method, Request, HTTPOptions, Options)
request() - {url(), headers(), content_type(), body()}
body() = string() | binary()
哦,原来是我没有认真的查看文档,这里的body是string或binary,不再是iolist了, ...
- 2009-01-15 21:57
- 浏览 6163
- 评论(0)
Erlang一个非常值得称道的特性就是代码热替换(Hot Code Sawpping),我们在调用函数时,通过M:F(A)的方式,可以保证总是加载最新的代码。
在《Erlang程序设计》中E4部分,通过一个小例子展示了代码的动态加载,两个module代码如下:
a.erl
-module(a).
-compile(export_all).
-import(b, [x/0]).
start(Tag) ->
spawn(fun() -> loop(Tag) end).
loop(Tag) ->
timer:sleep(3000),
...
今天MailList中一个问题,在Application和Includeed Application中调用application:get_application/0,返回都是Primary Applicaion Name,为什么是这样呢?
在Erlang OTP中Application可以包其他Application,也就是Included Application。我前阵子在项目中也尝试使用Includeed App,可是等我认真看OTP doc的时候,发现我也理解偏差了。
Primary Application启动时,会Load所有的Included Application,但是不会Sta ...
Literal Term
int, float, atom, tuple, list, binary
in predefined attributes and user-defined attributes, the Value must be literal term. for example:
some_module.erl
...
-attr1(1).
-attr2(1.0).
-attr3(correct).
-attr4({1, 0}).
-attr5("good").
-attr6(<<"good">>).
...
...
- 2009-01-13 11:48
- 浏览 1436
- 评论(0)
在分布式系统中,因为涉及到大量的机器,所以部署略微有些繁琐。
使用Erlang开发的系统,我们可以通过boot_server来加载我们的代码,免去了ssh登陆服务器,更新代码这样繁琐的步骤。我们只需要将最新的beam文件放到一个server,作为Erlang的boot_server,其他的机器启动Erlang时,通过连接这个Boot Server加载最新的应用代码,完成程序的启动。
架设Server ip为:8.17.85.135
其中一个Client为: 124.118.219.104
启动一个Boot Server涉及的主要模块为erl_boot_server,我们可以通过erlang ...
- 2009-01-13 11:45
- 浏览 4926
- 评论(2)
pid 既可以代表本地的process,也可以代表其他节点即远程 process,因此pid ! Msg,既可以向本地节点又可以向其他节点发送消息。
如何来区分local pid和remote pid呢,让我们先看看pid具体包含哪些信息。
打印pid变量的时候,其为X.Y.Z格 ...
- 2009-01-13 11:43
- 浏览 2651
- 评论(1)
昨天写了一个简单的文档,为想学习Erlang的朋友,提供一点点的资料。
书写仓促,纰漏难免。望各位朋友不吝指正。
http://code.google.com/p/erlkad/
闲暇无事,就用erlang写了一个kad libarary。
放到google code上,最近刚做完单元测试,还需要进一步的测试。
还有一点就是没有做好release,回头准备用erlware的系列工具来生成安装包。
回头会写一些开发过程中的心得。 :)
- 2009-01-13 11:17
- 浏览 2246
- 评论(0)
1个月前写ecrawler的时候,需要一个lru cache算法。
erlang中好像没有特别合适的选择,就自己实现了一个。
思想:
采用gb_trees保存key-value pair,可以实现快速的key lookup,但是当发生替换时,
需要根据访问时间清理item,我们可能需要gb_trees中的数据导入到list中,随后进行排序,然后调换掉比较旧的内容。为了改善性能,我将数据在list中做一个拷贝,但是注意不包含value,只是key和一些状态信息。
当发生替换时,我们可以直接对list进行排序(也可以在每次操作的时候,将item插入到list中的合适位置,保持list有序),随后删除 ...
- 2009-01-13 11:16
- 浏览 2674
- 评论(0)
我们以Module代表gen_server的callback模块
1, 实现gen_server behaviour的模块会产生一个新的process么?
毫无疑问,太会了!通过调用proc_lib:start_link/5创建process
2, gen_server:start_link/3,4中的Options参数有什么用处?
Options中只有这几个选项:{debug,Dbgs} | {timeout,Time} | {spawn_opt,SOpts},
debug是用来和sys模块相关联的;咱们通过proc_lib:start_link/5创建process的时候,如果初始化等待的 ...
- 2009-01-13 11:15
- 浏览 4577
- 评论(1)