
erlang
liufanyansha
这个作者很懒,什么都没留下…
展开
-
erlang的epmd
epmd有一个-stop的选项,当要是用[code="shell"]$epmd -stop name[/code]的时候,本机启动的第一个erlang shell时要加上-relaxed_command_check选项,例如:[code="shell"]erl -sname -epmd "epmd -relaxed_command_check -daemon"[/code]这样的话...原创 2013-07-01 20:29:09 · 299 阅读 · 0 评论 -
使用erlang的动态执行编写DSL
今天看到[url=http://www.cnblogs.com/me-sa/archive/2012/02/29/erlang0042.html]Erlang 动态执行[/url]和[url=http://blog.yufeng.info/archives/78]erlang动态解释[/url],实验的代码如下:[code="erlang"]-module(dsl).-comp...原创 2013-07-05 12:54:55 · 201 阅读 · 0 评论 -
使用erlang实现动态替换字符串中的变量
通过erlang,我们可以使用{ok, Ts, _} = erl_scan:string(String).来获取Tokens,然后调用:{ok, Expr} = erl_parse:parse_exprs(Ts).转换成可以执行的表达式,之后通过erl_eval:exprs(Expr, Binding).来执行表达式。实验步骤如下:[code="shell"]1...原创 2013-07-05 13:18:02 · 543 阅读 · 0 评论 -
erlang的erl_eval
自己尝试使用erl_eval做一些联系,发掘改模块的功能:[code="shell"][root@dev-emp-com work]# erlErlang R14B (erts-5.8.1) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]Eshell V5.8.1 ...原创 2013-07-05 13:56:00 · 634 阅读 · 0 评论 -
列表[A||boolen]
今天读到[url=https://github.com/basho/riak_sysmon/blob/master/src/riak_sysmon_filter.erl]riak_sysmon[/url]时,看到列表解析的特殊用法,以前没见过,特做下笔记。[code="java"]%%-----------------------------------------------------...原创 2013-07-06 16:14:48 · 142 阅读 · 0 评论 -
SystemTap and Erlang: a tutorial
参照该文章安装[url=http://www.snookles.com/slf-blog/2011/11/19/systemtap-and-erlang-a-tutorial/]SystemTap and Erlang: a tutorial[/url]原创 2013-07-06 19:16:35 · 139 阅读 · 0 评论 -
erlang的gdb调试
当我们完成erlang的正常配置和编译后,我们可以构建一个debug模式的erlang运行时系统,过程如下:[list][*]首先我们再源代码的根目录导出ERL_TOP环境变量:export ERL_TOP=`pwd`[*]然后进入$ERL_TOP/erts/emulator目录下面,执行:make debug FLAVOR=smp或者make debug FLAVOR=plain...原创 2013-07-08 21:00:45 · 442 阅读 · 0 评论 -
system_info模块
在看了[url=http://blog.yufeng.info/archives/2799]Erlang新增全面的系统信息收集器-system_information模块[/url]之后,自己下载最新的代码,查看该模块,仔细看了一下[code="erlang"]report() -> [ {init_arguments, init:get_arguments()}, {cod...原创 2013-07-31 22:16:29 · 420 阅读 · 0 评论 -
Distributed Semaphores with RabbitMQ
翻译自(http://www.rabbitmq.com/blog/2014/02/19/distributed-semaphores-with-rabbitmq/)在这篇博客里面,我们将定位“在一个分布式系统里面,如何实现对特殊资源的访问控制”的问题,解决该问题的方案在计算机界广为人知,那就是被成为信号量的东东。“信号量”是在1965年Dijkstra的“Cooperating Seque...2014-03-04 21:54:00 · 233 阅读 · 0 评论 -
record小记
今天阅读rabbitMQ代码,遇到一段代码很疑惑:[code="java"]try log(info, "liufan the #v is ~p~n", [#v1.stats_timer]), run({?MODULE, recvloop, run({?MODULE, recvloop, [Deb, swit...2014-03-06 17:46:32 · 172 阅读 · 0 评论 -
Erlang如何查看gen_server系列的状态 (高级)
引用[url=http://blog.yufeng.info/archives/99]Erlang如何查看gen_server系列的状态 (高级)[/url][quote] gen_server在erlang otp编程中的地位是无可撼动的,几乎都是gen_server或者gen_fsm的模型。那么程序运行起来的时候 我们如何查看gen_server的内部状态呢。有2种方法:1. 自己...原创 2013-07-05 09:16:42 · 373 阅读 · 0 评论 -
通过port获取相应的节点名
今天看了霸爷的[url=http://blog.yufeng.info/archives/36]节点间通讯的通道微调[/url]和[url=http://blog.yufeng.info/archives/2659]谁引起busy_dist_port[/url]之后,自己将两章的内容连起来,组合成一个小程序,通过节点名查到相应的port,然后通过port查到相应的节点名,代码如下:[code=...原创 2013-07-04 23:41:19 · 257 阅读 · 0 评论 -
erlang的abstract_code代码
在看了霸爷的[url=http://blog.yufeng.info/archives/76]erlang的abstract code[/url]之后,自己动手实验了一下,效果如下:[code="shell"][liufan@liufan abstract_code]$ erl -s hello -s erlang haltErlang R16B01 (erts-5.10.2) [so...原创 2013-07-04 21:04:30 · 286 阅读 · 0 评论 -
epmd的启动参数1
当使用epmd -address时,后面跟的IP_LIST是让epmd监听自己电脑的哪个ip的,例如:[code="shell"][liufan@liufan ~]$ epmd -address 192.168.1.110 -depmd: Tue Jul 2 04:43:17 2013: epmd running - daemon = 0epmd: Tue Jul 2 04:4...原创 2013-07-01 20:51:40 · 388 阅读 · 0 评论 -
epmd的启动参数2
使用epmd的-port选项时,实验的例子是:[code="shell"][liufan@liufan ~]$ echo $ERL_EPMD_PORT[liufan@liufan ~]$ export ERL_EPMD_PORT=4444[liufan@liufan ~]$ epmd -depmd: Tue Jul 2 05:00:39 2013: epmd runnin...原创 2013-07-01 21:07:33 · 217 阅读 · 0 评论 -
epmd的启动参数3
和epmd相关的环境变量[list][*]ERL_EPMD_RELAXED_COMMAND_CHECK[*]ERL_EPMD_PORT[*]ERL_EPMD_ADRESS[/list]相关的使用如下:[code="shell"][liufan@liufan ~]$ export ERL_EPMD_RELAXED_COMMAND_CHECK=TRUE[liufan...原创 2013-07-01 21:28:27 · 3338 阅读 · 0 评论 -
iolist类型
今天读到http://blog.yufeng.info的[url=http://blog.yufeng.info/archives/336]gen_tcp:send的深度解刨和使用指南(初稿)[/url],看到下面这句:[quote]gent_tcp:send的时候数据的格式是iolist. 很多人会误会,特地把iolist特地变成list或者binary. 新生成的binary或者lis...原创 2013-07-02 21:47:02 · 508 阅读 · 0 评论 -
erlang:port_command函数
今天读到[url=blog.yufeng.info]褚霸[/url]博客里的[url=blog.yufeng.info/archives/336]gen_tcp:send的深度解刨和使用指南(初稿)[/url]时,顺着霸爷的思路,跟着lib/kernel/src/gen_tcp.erl[code="erlang"]send(S, Packet) when is_port(S) ->...原创 2013-07-02 22:10:26 · 1445 阅读 · 0 评论 -
erlang的内联编译
今天再[url=http://www.cnblogs.com/me-sa/archive/2012/01/09/erlang0029.html]erlang inline 编译[/url]中读到erlang的函数也可以内联编译。但是内联功能从来不会默认打开的。如果想使用的话,必须显示的在代码里使用-compile()属性。当再代码里加上-compile(inline).时,编译器会根据自己...原创 2013-07-02 23:42:59 · 206 阅读 · 0 评论 -
inet:setopts/2函数
下面引用[url=http://blog.yufeng.info/archives/336]霸爷[/url]的话,给自己做一个笔记[quote]inet_drv内部每个socket都有个消息队列, 保持着上层推来的消息. 这个消息队列有上下水位线的. 当消息的字节数目超过了高水位线的时候, inet_drv就把socket标志为busy. 这个busy要到队列的字节数少于低水位线的时候才解...原创 2013-07-03 16:18:14 · 360 阅读 · 0 评论 -
erlang判断内部pid的方法
在erl_term.h文件里:[code="c"]#define _TAG_IMMED1_PID ((0x0原创 2013-07-04 13:48:12 · 529 阅读 · 0 评论 -
实验CPU密集型计算
今天实验了一下霸爷博客里的CPU密集型计算,计算的内容时计算四遍斐波纳妾数列的第四十个元素是多少代码如下:cpu_intensive.erl[code="erlang"]-module(cpu_intensive).-compile([export_all]).fib_test() -> fib(40), fib(40), fib(40), fib(...原创 2013-07-04 20:40:57 · 306 阅读 · 0 评论 -
erlang host address
在rabbitMQ看到一段关于转换地址的代码:留着以后用[code="erlang"]%% inet_parse:address takes care of ip string, like "0.0.0.0"%% inet:getaddr returns immediately for ip tuple {0,0,0,0},%% and runs 'inet_gethos...原创 2014-03-07 13:40:21 · 186 阅读 · 0 评论