erl0009 - erlang 读取时间瓶颈解决办法

读取时间erlang提供有两种方式:

    1、erlang:now();

    2、os:timestamp();

    以上两种方式由于erlang系统需要保证读取精度,当并发读取的时候会引起加锁。系统频繁读取时间将会带来性能上的一定开销;

    为避免这种不必要的开销,可以采用一种折中的办法------“低精度时间管理”。具体办法是,自己维护一个模块来管理时间,10-1000毫秒读取一次系统时间存于gen_server的状态、进程字典或者ets中。其他地方需要时间的,全都并发读取时间。这里我个人认为存入ets比较好。因为如果存入gen_server状态或进程字典,那么并发读取就需要走消息流。开销肯定会比并发读取ets大,ets数据共享,其他进程可以直接并发读取。

    参考来源:http://blog.yufeng.info/archives/2977

posted on 2015-03-16 16:50  骄傲的小笨蛋  阅读(213)  评论(0编辑  收藏  举报

导航