本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- zysnba
- xiangjie88
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sichunli_030
- sam123456gz
- arpenker
- tanling8334
- 龙儿筝
- kaizi1992
- gaojingsong
- xpenxpen
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
- kingwell.leng
最新文章列表
system_info模块
在看了Erlang新增全面的系统信息收集器-system_information模块之后,自己下载最新的代码,查看该模块,仔细看了一下
report() -> [
{init_arguments, init:get_arguments()},
{code_paths, code:get_path()},
{code, code()} ...
crond服务的erlang实现
性能测试:
(1)环境描述
model name : Intel(R) Xeon(R) CPU E5606 @ 2.13GHz cpu MHz
cpu MHz : 2133.409
bogomips : 4266.81
(2)测试结果
单核, CPU使用率接近100%,内存使用量为300M-,执行的cr ...
Erlang References
TDD
Erlang EUnit Introduction
Erlang TDD hands on project – WorkerNet
Practical Erlang testing techniques
Learning
Learn You Some Erlang
Get Started with Erlang
Management
Erlang App. Man ...
作为内存数据库的riak
riak的邮件列表最近的讨论
riak_kv_memory_backend in production
Here are some suggestions for running the memory backend in production:
1. Since you are running a single node cluster, set your n_val to 1 [1]
2. ...
[笔记]erlang集群常识(其实只是关于node的基本知识)
读书笔记 读书笔记 依旧是那本erlang/OTP并发编程实战 买了纸质书懊悔不已 已打算再买图灵的电子版了...哎~~
在本机上建立一个node网络 和好几台计算机分别建一个node然后连接差不多是一样的
1.建立节点
要建立节点是很简单的(以下的实验都是在win下做得):
分别在三个cmd下输入
erl -sname a
erl -sname b
erl -sname ...
erlang的gdb调试
当我们完成erlang的正常配置和编译后,我们可以构建一个debug模式的erlang运行时系统,过程如下:
首先我们再源代码的根目录导出ERL_TOP环境变量:export ERL_TOP=`pwd`
然后进入$ERL_TOP/erts/emulator目录下面,执行:make debug FLAVOR=smp或者make debug FLAVOR=plain
我们要调试的时候 就可以在otp的 ...
erlang进程性能分析方法
有时erlang进程cpu异常高,可以通过下面的工具函数(fprof)来分析一下各函数占用cpu时间的情况
Now = fun() ->
{A, B, _} = erlang:now(),
A * 1000000 + B
end.
Fprof_start = fun(Procs) ->
fprof:trace([start, {file, "/tmp/ ...
列表[A||boolen]
今天读到riak_sysmon时,看到列表解析的特殊用法,以前没见过,特做下笔记。
%%--------------------------------------------------------------------
%% @private
%% @doc
%% ...
erlang的erl_eval
自己尝试使用erl_eval做一些联系,发掘改模块的功能:
[root@dev-emp-com work]# erl
Erlang R14B (erts-5.8.1) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.8.1 (abort with ^G)
...
使用erlang实现动态替换字符串中的变量
通过erlang,我们可以使用
{ok, Ts, _} = erl_scan:string(String).
来获取Tokens,然后调用:
{ok, Expr} = erl_parse:parse_exprs(Ts).
转换成可以执行的表达式,之后通过
erl_eval:exprs(Expr, Binding).
来执行表达式。
实验步骤如下:
1> F =fun(Str,Binding ...
使用erlang的动态执行编写DSL
今天看到Erlang 动态执行和erlang动态解释,
实验的代码如下:
-module(dsl).
-compile([export_all]).
broker() ->
receive
{buy, Quantity, Ticker} ->
% 向外部系统下单的具体代码放在这里
%
...
Erlang如何查看gen_server系列的状态 (高级)
引用Erlang如何查看gen_server系列的状态 (高级)
引用
gen_server在erlang otp编程中的地位是无可撼动的,几乎都是gen_server或者gen_fsm的模型。那么程序运行起来的时候 我们如何查看gen_server的内部状态呢。有2种方法:
1. 自己写个类似于info这样的函数,来获取状态。
2. 利用系统现有的架构。sasl应用带了一个si的东西 全名是st ...
通过port获取相应的节点名
今天看了霸爷的节点间通讯的通道微调和谁引起busy_dist_port之后,自己将两章的内容连起来,组合成一个小程序,通过节点名查到相应的port,然后通过port查到相应的节点名,代码如下:
-module(busyPort).
-compile([export_all]).
start(Node) ->
Port = node_port(Node),
annotat ...
erlang的abstract_code代码
在看了霸爷的erlang的abstract code之后,自己动手实验了一下,效果如下:
[liufan@liufan abstract_code]$ erl -s hello -s erlang halt
Erlang R16B01 (erts-5.10.2) [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll ...
实验CPU密集型计算
今天实验了一下霸爷博客里的CPU密集型计算,
计算的内容时计算四遍斐波纳妾数列的第四十个元素是多少
代码如下:
cpu_intensive.erl
-module(cpu_intensive).
...
erlang判断内部pid的方法
在erl_term.h文件里:
#define _TAG_IMMED1_PID ((0x0 << _TAG_PRIMARY_SIZE) | TAG_PRIMARY_IMMED1)
#define _TAG_PRIMARY_SIZE 2
#define TAG_PRIMARY_IMMED1 0x3
由上面得到_TAG_IMMED1_PID=0x3(0000 0000 0 ...
dialyzer使用备忘
一、构建PLT文件:
新构建
dialyzer --build_plt --apps $(APPS)
--apps参数对命令指定的应用构建PLT,缺省的PLT文件是~/.dialyzer_plt文件
如果要生成自己的plt文件,使用--output参数指定
dialyzer --build_plt --apps $(APPS) --output_plt my_abc.plt
一个例子:
di ...
使用gcc编译c代码的时候报错
今天编译erlang自带的ei_interface的例子时,报错如下
[liufan@liufan src]$ gcc -o extprg -I/usr/local/lib/erlang/lib/erl_interface-3.7.13/include/ -L/usr/local/lib/erlang/lib/erl_interface-3.7.13/lib complex.c erl_comm ...