关注LAMP|PHP源代码分析|web架构|PHP扩展|Erlang|服务端架构
  • 5 月珠三角技术沙龙(广州)网游技术专场PPT

    2011-06-10
  • erlang zlib引起的系统崩溃记录

    2010-08-11

    author: 庆亮 (qing.liang.cn@gmail.com /  http://twitter.com/qingliangcn )

    date: 2010-07-12

     

    之前同事遇到一个问题,系统运行一段时间后有大量的port没有正常关闭而导致beam崩溃,经过定位发现是由于zlib引起的。过程很简单,没什么技术含量,记录一下。 Read More »

    作者:庆亮 | 分类目录:Erlang | 标签:
  • Erlang OTP之terminate 深入分析

    2010-08-03

    作者:庆亮 (qing.liang.cn@gmail.com)

    日期:2010-08-03

    环境:centos  5.5  64     erlang 14A

     

    一、terminate简述及问题产生

     

    terminategen_server的一个回调函数,如果一个gen_server进程设置了trap_exittrueprocess_flag(trap_exit, true)),则在该进程结束时会自动调用terminate。利用这个功能,我们可以在进程退出时进行一些善后工作,例如持久化数据、清理等等。但实际上terminate不一定有时间完成所有的任务,在此之前可能已经被系统强制结束了(如果使用init:stop形式结束beam)Read More »

    作者:庆亮 | 分类目录:Erlang | 标签:
  • erlang init stop浅析

    2010-08-03

    作者:庆亮 (qing.liang.cn@gmail.com)

    日期:2010-08-03

     

     

    boot之后关注的自然是stop,直接打开erts-5.7.5/src/init.erl源码看了看:

     

    -spec stop() -> no_return().
    stop() -> init !
    {stop,stop}, ok.

    {stop,Reason} ->
                stop(
    Reason,State); Read More »

    作者:庆亮 | 分类目录:Erlang | 标签:
  • erlang init boot 浅析

    2010-08-03

    说明:遇到一个OTP的问题,疑惑了很久,也就有了这篇文章。

    目的:跟踪Erlang的启动过程

     

    参考这里 http://erlangdisplay.javaeye.com/blog/315497 ,直接从erts-5.7.5/src/init.erl boot/1函数开始(关于这个链接给出的结论以后会继续研究分析):

    Read More »

    作者:庆亮 | 分类目录:Erlang | 标签:
  • erlang shell web版

    2010-08-02

    http://www.tryerlang.org/

    作者:庆亮 | 分类目录:Erlang | 标签:
  • 空间更换到国外了

    2010-07-22

    之前的合租空间不做了,现在换到国外了,速度上可能有点慢。

    作者:庆亮 | 分类目录:暂未分类 | 标签:
  • GFW连http://www.python.org/download/都强掉了

    2010-06-17

    防民之口甚于防川

    作者:庆亮 | 分类目录:暂未分类 | 标签:
  • 我的腾讯微博

    2010-06-06

    t.qq.com/qingliangcn

    作者:庆亮 | 分类目录:暂未分类 | 标签:
  • R13B04的Emacs erlang-mode

    2010-05-21

    R13B04的Emacs erlang-mode在编译后少了几个文件,默认%erlang_root%/lib/tools-2.6.5.1/emacs下有如下文件:

     

    -rw-r–r– 1 root root 183741 2010-05-21 11:43 erlang.el

    -rw-r–r– 1 root root  10059 2010-05-21 11:43 erlang-eunit.el

    -rw-r–r– 1 root root   3452 2010-05-21 11:43 erlang-start.el

    -rw-r–r– 1 root root   1611 2010-05-21 11:43 README

    -rw-r–r– 1 root root  12834 2010-05-21 11:43 test.erl.indented

    -rw-r–r– 1 root root  11877 2010-05-21 11:43 test.erl.orig

    直接在emacs中配置指向这里的话,会无法正常使用erlang-mode:

    (setq load-path (cons "/usr/local/erlang/lib/tools-2.6.5.1/emacs" load-path))
     
    需要拷贝源代码目录中的emacs el文件过来,拷贝后如下:
    -r-xr-xr-x 1 root root  45795 2010-05-21 11:54 erlang_appwiz.el*
    -rw-r–r– 1 root root 183741 2010-05-21 11:54 erlang.el
    -rw-r–r– 1 root root  10059 2010-05-21 11:54 erlang-eunit.el
    -r-xr-xr-x 1 root root  55313 2010-05-21 11:54 erlang-skels.el*
    -r-xr-xr-x 1 root root  48006 2010-05-21 11:54 erlang-skels-old.el*
    -rw-r–r– 1 root root   3452 2010-05-21 11:54 erlang-start.el
    -rw-r–r– 1 root root   1611 2010-05-21 11:43 README
    -rw-r–r– 1 root root  12834 2010-05-21 11:43 test.erl.indented
    -rw-r–r– 1 root root  11877 2010-05-21 11:43 test.erl.orig

    作者:庆亮 | 分类目录:Erlang | 标签:
  • ubuntu下使用ntfs-config快速配置自动加载windows分区

    2010-05-20

    apt-get install ntsf-config

    恩,十分简单方便,记录以备查询。

    作者:庆亮 | 分类目录:Linux/Unix/BSD | 标签:
  • mnesia脏读与事物读性能结果

    2010-05-13

    一直知道mnesia的事务比较慢,但慢到什么程度却没有一个数值的概念,今天正好有空测试一下。

    上代码:

    -module(mnesia_read_test).

    -export([start/0, init_data/0, start2/0]).

    -record(r_test, {id, name}).

    start() ->

            statistics(wall_clock),

        statistics(runtime),

            read(),

            {_, Time1} = statistics(wall_clock),

        {_, Time2} = statistics(runtime),

        io:format("times:~p, wall_clock ~p, runtime:~p", [100000, Time1, Time2]).

      Read More »

    作者:庆亮 | 分类目录:Erlang | 标签:
  • 装了Ubuntu 10.04

    2010-05-06

    这两天着实折腾了一把,先后安装了ubuntu的32位和64位版本,最后无赖还是选择了32位版本 — 软件支持的原因。

    之前一直因为QQ的问题无法转过来,现在有了webqq和linuxqq,暂时可以尝试下了。

    作者:庆亮 | 分类目录:暂未分类 | 标签:
  • gen_server三两话

    2010-04-17

    (最近挺忙,都没时间写点啥)

    gen_serverOTP中的一个重要组成,在开发中出现的频率相当高。弄明白这一块的,对于gen_server的使用有着相当好的帮忙。下面多数为代码。

    start_link开始:

    gen_server.erl

    start_link(NameModArgsOptions) ->

    gen:start(?MODULE, link, NameModArgsOptions).

     

    Read More »

    作者:庆亮 | 分类目录:Erlang | 标签:
  • 我心目中的英雄

    2010-03-21

    我是个凡人,但这并不影响我对英雄的仰慕、敬佩。王克勤,一个普通得名字,做的却是不普通的事!http://wangkeqin.blog.sohu.com/

    作者:庆亮 | 分类目录:暂未分类 | 标签:
  • Erlang中日志管理三两话

    2010-03-10

    日志系统的重要性就不罗嗦了,直接开始吧。

     

    一、基本概念

     

    Erlang中,通过两个概念管理错误事情:事件管理器(event manager)和事件处理句柄(event handles)。通常各种错误、警告和消息事件都会有Erlang运行时系统发送给事件管理器。在Erlang中,默认的事情管理器为error logger,其进程名注册为error_logger。默认情况下error_logger把这些事件直接输出到控制台上。 Read More »

    作者:庆亮 | 分类目录:Erlang | 标签:
  • QQ群:PHP内核与扩展研究 48448818

    2010-03-09

    QQ群:PHP内核与扩展研究 48448818
    PHP内核与扩展研究。加群请说明自己感兴趣领域或者擅长领域!否则一律不予通过,请谅

    作者:庆亮 | 分类目录:暂未分类 | 标签:
  • list comprehensions与list map性能对比

    2010-02-26

    可以使用List comprehensions时不要 使用map或者filter,简单的性能测试对比一下:

    第一组,maplist comprehensions对比,代码如下:

    %%map方式

    -module(map_test).

    -export([start/1]).

    start(N) ->

            statistics(runtime),

            erlang:statistics(wall_clock),

            lists:map(fun (X) -> X*X end, lists:seq(1N)),

            {_T1} = erlang:statistics(runtime),

            {_T2} = erlang:statistics(wall_clock),

            io:format("total times: ~p, load time: ~p (~p)", [NT1T2]).

    %%list comprehensions方式

    -module(list_comp_test).

    -export([start/1]).

    start(N) ->

            statistics(runtime),

            erlang:statistics(wall_clock),

            [X*X || X <- lists:seq(1N)],

            {_T1} = erlang:statistics(runtime),

            {_T2} = erlang:statistics(wall_clock),

            io:format("total times: ~p, load time: ~p (~p)", [NT1T2]).

    测试N1000000时结果对比:

    结果取得是平均值,可以很明显的看出comprehension方式性能要高。

    关于filter,则类似。不再作测试。

    作者:庆亮 | 分类目录:Erlang | 标签:
  • 使用新的域名 www.qingliangcn.com

    2010-02-25

    即日起使用新的域名 www.qingliangcn.com,原有域名保留一定时间。

    作者:庆亮 | 分类目录:暂未分类 | 标签:
  • 虎年好运,新春愉快!

    2010-02-14

    虎年好运,新春愉快!

    作者:庆亮 | 分类目录:暂未分类 | 标签:
  • Pages: 1 2 3 4 下一页