erlang 参数启动 以及定时器

1 os:timestamp(). erlang:timestamp(), erlang:now() 都是返回系统时间戳{MegaSecs(秒*1000000), Secs(秒数), MicroSecs(微秒数)}

2 erlang:timestamp(). erlang:now().

erlang:timestamp()获取到的时间更接近于操作系统时间,erlang:now()每次获取都会生成唯一的时间,看来erlang:now()在实现上对时间多做了一个校正,相对erlang:timestamp()有点失真,同时也会有多余的开销。但是erlang:now()每次都生成唯一的值

3.时间戳为 {M, S, _}= os:timestamp() M*1000000 + S 即为 erlang:system_time(1).(取秒数的时间戳)

4. rand的随机数。会通过设置一个种子。根据种子来生成随机数。(默认利用当前时间作为种子)。

1) erlang启动的时候的命令

-eval Exp 表达式作为启动时参数

- pa dir1 di2 在头部增加标准搜索path

- pz dir1 dir2在尾部增加搜索path 可以作为

- path 直接替换(replace)path

扫描二维码关注公众号,回复: 3682133 查看本文章

-config F 告诉系统用F作为系统配置文件来重写application源文件中的配置

-remsh Node 启动远程节点

+ K true/false 是否启用on个kernel的poll机制

+ P Number|legacy 最大进程数量

-smp auto|enable|disable 是否需要支持SMP 默认是enable

-boot 指定启动使用的boot文件 替代$ROOT/bin/start.boot

-args_file FileName 从文件FileName读取命令行参数

没有SMP支持的Erlang VM只有一个Scheduler运行于主线程;Scheduler从运行队列中取出需要处理的Erlang进程和IO-job;由于只有一个Scheduler没有必要对数据加锁;见下图:

   有SMP支持的Erlang VM 可以有1~1024个Scheduler,每一个Scheduler都会运行于一个独立的操作系统线程;操作系统决定它是否要在不同的核上运行.由于多个Scheduler就要对数据加锁,一个Erlang进程可能前后被多个Scheduler调度;

Ms = ets:fun2ms(fun(E) when E#player_state.is_online == 1 ->

[E#player_state.actor#r_db_actors.platform,

E#player_state.misc#player_misc.ip]

end),

生成一个Ms的 匹配 字符

case ets:select(?ETS_ONLINE, Ms) 。

猜你喜欢

转载自www.cnblogs.com/Fchengli/p/9833931.html
今日推荐