本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- zysnba
- xiangjie88
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- 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
- 喧嚣求静
- kingwell.leng
- mwhgJava
- lich0079
最新文章列表
inet:setopts/2函数
下面引用霸爷的话,给自己做一个笔记
引用inet_drv内部每个socket都有个消息队列, 保持着上层推来的消息. 这个消息队列有上下水位线的. 当消息的字节数目超过了高水位线的时候, inet_drv就把socket标志为busy. 这个busy要到队列的字节数少于
低水位线的时候才解除.
这是未公开的文档,用法参见下面:
inet:setopts(Socket, [{high_waterma ...
erlang的内联编译
今天再erlang inline 编译中读到erlang的函数也可以内联编译。
但是内联功能从来不会默认打开的。如果想使用的话,必须显示的在代码里使用-compile()属性。
当再代码里加上-compile(inline).时,编译器会根据自己的规则来决定哪个函数被定义成内联函数,其中有一个因素就是-compile({inline_size, Size}).,默认的size是24,这个size作为 ...
erlang:port_command函数
今天读到褚霸博客里的gen_tcp:send的深度解刨和使用指南(初稿)时,顺着霸爷的思路,跟着
lib/kernel/src/gen_tcp.erl
send(S, Packet) when is_port(S) ->
case inet_db ...
iolist类型
今天读到http://blog.yufeng.info的gen_tcp:send的深度解刨和使用指南(初稿),看到下面这句:
引用
gent_tcp:send的时候数据的格式是iolist. 很多人会误会,特地把iolist特地变成list或者binary. 新生成的binary或者list在send之后要GC回收, 如果频繁的话,
系统的性能损失很大.
tcp驱动是支持scatter write的 ...
epmd的启动参数3
和epmd相关的环境变量
ERL_EPMD_RELAXED_COMMAND_CHECK
ERL_EPMD_PORT
ERL_EPMD_ADRESS
相关的使用如下:
[liufan@liufan ~]$ export ERL_EPMD_RELAXED_COMMAND_CHECK=TRUE
[liufan@liufan ~]$ export ERL_EPMD_PORT=4445
[liuf ...
epmd的启动参数2
使用epmd的-port选项时,实验的例子是:
[liufan@liufan ~]$ echo $ERL_EPMD_PORT
[liufan@liufan ~]$ export ERL_EPMD_PORT=4444
[liufan@liufan ~]$ epmd -d
epmd: Tue Jul 2 05:00:39 2013: epmd running - daemon = 0
...
epmd的启动参数1
当使用epmd -address时,后面跟的IP_LIST是让epmd监听自己电脑的哪个ip的,例如:
[liufan@liufan ~]$ epmd -address 192.168.1.110 -d
epmd: Tue Jul 2 04:43:17 2013: epmd running - daemon = 0
epmd: Tue Jul 2 04:43:25 2013: ** go ...
erlang的epmd
epmd有一个-stop的选项,当要是用
$epmd -stop name
的时候,本机启动的第一个erlang shell时要加上-relaxed_command_check选项,例如:
erl -sname -epmd "epmd -relaxed_command_check -daemon"
这样的话,就会实现如下效果:
[liufan@liufan ~]$ erl - ...
Erlang应用打包工具:node_package
node_package是一个制作erlang应用安装包的脚本/模版集合。支持的平台包括deb(ubuntu), MacOSX, FreeBSD。
这里记录我使用过程中遇到的一些问题,备忘。
一、前提
rebar.config中添加对node_package的依赖。
使用前保证rebar generate能正确打包。
另外,generate出来的应用目录下要有个data目录,可以在relto ...
利用user_default模块自定义Erlang Shell命令
在erlang开发过程中,shell是一个强大的工具,它提供了很多简短的命令来完成各种各样的任务。在shell中输入:
help().
就能看到它提供的所有命令。实际上,我们可以自己扩展shell的命令来完成一些日常的任务,以提高开发的效率。
首先,需要新建一个user_default.erl文件并编译得到user_default.beam,内容如下:
- ...
erlang异步接收不到数据的问题
主要是利用rabbitmq的东西,贴出服务端代码
listen代码
gen_tcp:listen(Port, SocketOpts)
SocketOpts = [
binary,
{packet, 0}, %%{packet, 0}表示erlang系统会吧TCP数据原封不动地直接传送给应用程序
...
os:timestamp 与 erlang:now差别
erlang代码学了三年,不敢轻易断言差异,发表些观点请高手指点。
os:timestamp 与 erlang:now差别:
结果格式都为: {MegaSecs, Secs, MicroSecs}
两个明显的差别:
第一:
now默认系统时间可靠的,启动之后不会修改
timestamp 在系统时间改变之后,也会随之改变,
服务器在运行的过程中,同一时间time ...
erlang digraph模块
digraph模块是对图结构的一种封装,主要的description请参考http://www.erlang.org/doc/man/digraph.html
下面来看看digraph的一些方法:
图结构无非就是由一些节点和边组成的,在digraph中有个Label的东西,这个其实就是图节点的附加信息,类似在C语言中在一个节点中放个指针,指向一些附加的信息。
那么要创建图,就必须要先创建一 ...
gen_server笔记
gen_server笔记
by cnDenis http://cndenis.iteye.com 2013年4月24日
gen_server是erlang的OTP框架中最常用的“行为模式”了吧,至少几本erlang教材都是首 先介绍这个。 ...