- 浏览: 982423 次
- 性别:
- 来自: 广州
最新评论
-
qingchuwudi:
有用,非常感谢!
erlang进程的优先级 -
zfjdiamond:
你好 这条命令 在那里输入??
你们有yum 我有LuaRocks -
simsunny22:
这个是在linux下运行的吧,在window下怎么运行escr ...
escript的高级特性 -
mozhenghua:
http://www.erlang.org/doc/apps/ ...
mnesia 分布协调的几个细节 -
fxltsbl:
A new record of 108000 HTTP req ...
Haproxy 1.4-dev2: barrier of 100k HTTP req/s crossed
文章列表
http://www.lua.org/gems/
We are proud to announce that the book has been published: Lua Programming Gems。
edited by L. H. de Figueiredo, W. Celes, R. Ierusalimschy
参见这个 http://avindev.iteye.com/blog/100113
-hosts Hosts
Specifies the IP addresses for the hosts on which Erlang boot servers are running, see erl_boot_server(3). This flag is mandatory if the -loader inet flag is present.
The IP addresses must be given in the standard form (four decimal num ...
我准备在上海举行的CN Erlounge III聚会中演讲的ppt, 欢迎拍砖头!
候选讲师名单及议题
http://www.ecug.org/lecturer/
要获得讲稿及 DEMO 代码,请到 SVN 库中 checkout 之。
* 对于 Linux 平台用户,请使用命令:svn co http://ecug.googlecode.com/svn/trunk/cn-erlounge/iii
* 对于 Windows 平台用户,请使用 SVN 客户端(如 TortoiseSVN)下载。
- 2008-12-11 18:07
- 浏览 1316
- 评论(0)
看下erl_bif_info.c
BIF_RETTYPE system_info_1(BIF_ALIST_1)
{
...
} else if (BIF_ARG_1 == am_heap_type) {
#if defined(HYBRID)
return am_hybrid;
#else
return am_private;
#endif
...
}
也就是说目前只打算支持私有堆和混合堆。
[root@haserver otp_src_R12B-5]# erl
Erlang (BEAM) emulator version 5.6.5 [source] [smp:2] ...
从R12B-0源码里面摘录出来的,挺有用的,我就不标注了,从名字好容易看出用途。
erts\emulator\beam\break.c(478): char* mode = getenv("ERL_CONSOLE_MODE");
erts\emulator\beam\break.c(681): dumpname = getenv("ERL_CRASH_DUMP");
erts\emulator\beam\erl_init.c(628): tmpenvbuf = getenv("ERL_FULLSWEEP_AFTER" ...
压榨linux2.6最后点内存分配性能,使用hugetlb.
Huge TLB Filesystem
===================
Most modern architectures support more than one page size. For example,
the IA-32 architecture supports 4KiB pages or 4MiB pages but Linux only
used large pages for mapping the actual kernel image. As TLB slots are a ...
老朱说 libevent的主干版本把ET加进去了,Valery Kholodkov今年5月底提交了个patch.
大家的福分哦。
http://www.mail-archive.com/libevent-users@monkey.org/msg01151.html
[Libevent-users] Support for Edge-Triggered behaviour
Valery Kholodkov
Thu, 29 May 2008 08:41:45 -0700
Greetings!
Since discovering libevent for myself I've been w ...
- 2008-12-09 22:35
- 浏览 3333
- 评论(0)
atom在erlang里面的作用非常大,特别是在消息匹配的时候,所以需要个非常高效的实现。erts的index.c hash.c atom.c用来实现atom. atom在内部表示的时候是个index. atom是个字符串,首先存在hash表里,然后把在hash里的slot,放在index的索引表里。这样要获取atom就非常高效,基本是2次指针运算。当需要把atom传送到外部的时候,第一次的时候就乖乖的送字符串的内容,同时把这个atom cache起来,以后再发送的时候就可以只传送在cache中的index了,大大提高了网络传输效率。具体的常见dec_atom enc_atom, externa ...
在多处理器机器上erlang默认是有几个cpu就有几个调度器线程,除非你通过+S N 参数来改变。每个调度器线程的入口函数是process_main, 外加一个主线程阻塞在select上等待中断事件的发生. process_main会调用schedule选择一个合适的process来执行。每个process里面都包含了要执行的的MFA,执行funtcion的opcode。beam_emu的opcode是基于register的,大概有180条左右opcode,每个版本都在增加,特别是最近的版本为了增加binary出来的效率加多了很多.
/*
* schedule() is called fro ...
erlang通过port来spawn外部程序 重定向外部程序的stdin, stdout到一对pipe行通信的,利用poll来检测外部程序的读写事件。但是如果外部程序退出的话,erts如何知道并且加以处理的呢?
erts运行的时候会初始化smp_sig_notify,开启一个信号处理线程,在这个线程里面做具体的信号处理。
static void
init_smp_sig_notify(void)
{
erts_smp_thr_opts_t thr_opts = ERTS_SMP_THR_OPTS_DEFAULT_INITER;
thr_opts.detached = 1;
...
erlang的process是个调度单位 它包含特定的MFA, 消息队列等,调度后由beam_emu来执行其中的opcode 在等待消息或者yield的时候放弃执行权,有消息的时候接着原来的地方继续执行。lua的coroutine也是同样的, 只不过他没有消息队列, 它的再执行靠lua_resume来推动。
我的理解是这样的,这是2个语言不同的地方,但是同样的轻量,同样的效率。
转自: http://erlangdotnet.net/2007/09/inside-beam-erlang-virtual-machine.html
OTP R11B-5 includes more than one million lines of Erlang. The kernel and standard library are about a third of these lines. The emulator, BEAM, is around 200,000 lines of C.
BEAM's C main functions are platform-specific an ...
- 2008-12-08 16:41
- 浏览 2639
- 评论(0)
转自:http://www.erlangatwork.com/2008/07/hunting-bugs.html
Our Erlang gateways were developed and deployed in phases starting with AIM/ICQ, GTalk, Yahoo, and finally MSN. Aside from minor protocol implementation bugs there were no problems and we were very satisfied with stability and performance. How ...
- 2008-12-08 14:34
- 浏览 1603
- 评论(0)
erlang运行期最值得称道的地方之一就是完备的自省机制,也就是说你可以通过这些信息了解整个系统运行的方方面面,给系统的调试,排错,调优,运营提供非常大的便利。在beam的c实现代码中至少1/4的代码在为这个目标服务,信息非常的到位详细,这和爱立信作为商业公司运营交换机的需求有很大的关系。自省分为2个层面的:提供erts运行期信息的和用户进程相关的信息。包括一下一个基础设施:system_flag, system_info,system_profile,system_monitor,erts_debug,the Erlang crash dumps,trace. 以及在otp的os_mon ...