
erlang开发
文章平均质量分 61
gavinr
这个作者很懒,什么都没留下…
展开
-
sasl日志配置与读取
1.sasl日志配置解析 [{sasl, [ %% minimise shell error logging {sasl_error_logger, false}, %% only report errors {errlog_type, error}, %% define the pa原创 2013-08-17 23:07:51 · 3416 阅读 · 2 评论 -
关于erlang中的timer:send_after
erlang中有两个延时发送消息的函数erlang:send_after/3, timer:send_after/3,有什么区别呢?看下timer:send_after/3的源码send_after(Time, Pid, Message) -> req(apply_after, {Time, {?MODULE, send, [Pid, Message]}})req(R原创 2015-06-02 15:19:48 · 5162 阅读 · 0 评论 -
erlang 进程消息及ets性能测试
进程消息发送与接收1> test:test_proc_msg(10000000, {"test"}).{3145000,ok}2> test:test_proc_msg(10000000, {"test","test"}).{3731000,ok}3> test:test_proc_msg(10000000, {"testtesttesttest"}).{4428000原创 2015-05-16 17:41:40 · 2948 阅读 · 0 评论 -
erlang中dict的实现
首先来看dict定义:-define(seg_size, 16).-define(max_seg, 32).-define(expand_load, 5).-define(contract_load, 3).-define(exp_size, (?seg_size * ?expand_load)).-define(con_size, (?seg_size * ?contract_lo原创 2015-04-27 19:35:33 · 2872 阅读 · 0 评论 -
vimerl自动编译
vimerl配置好后,在文件每次保存时会自动进行语法检查。但是我发现,修改一个文件后,使用rebar进行编译,花费的时间比较长,主要是项目文件较多,编译遍历整个项目花了大量时间。我们可以做一些小的修改就可以在文件保存时自动生成 *.beam,由于只编译一个文件,所以速度很快. 首先查看erlang_check.erl文件, 原有代码在不能生成*.beam文件的原因在于编译时使用了原创 2013-01-24 15:16:40 · 2102 阅读 · 1 评论 -
vim erlang环境搭建
1.需要安装vim插件列表: 插件管理插件pathgoen, http://www.vim.org/scripts/script.php?script_id=2332项目管理插件Project http://www.vim.org/scripts/script.php?script_id=69taglist插件 http://www.vim.org/scripts/script.p原创 2013-01-22 00:06:37 · 5347 阅读 · 1 评论 -
erlang的错误日志
错误日志OTP系统已经内置了一个可定制的错误日志模块。我们可以从三种不同的视角来看错误日志。程序员的视角关注代码中要记录一个错误日志的函数调用?配置的视角关注错误日志如何存储以及保存在哪里?报告的视角则关心错误发生之后,如何进行分析。我们将逐条讲述这些内容。记录一个错误日志在程序员的视角,错误日志的API很简单,下面是这些API的一部分:@spec error_logg转载 2013-08-13 23:03:04 · 7736 阅读 · 0 评论 -
关于erlang热更新
热更原理 内存中可以保留两个版本的代码,当前版本代码'current'和老版本代码'old',一旦模块被加载就变成'current',再有一个版本过来被加载,之前的版本就变成'old',新加载的变成'current'.这时候,两个版本还是同时存在,新的请求执行的时候会使用新的版本,而老版本的代码还会被使用因为还有其他模块的调用'old'版本中。如果再进行一次热更新,这时就有第三个原创 2013-08-13 00:06:49 · 3286 阅读 · 0 评论 -
erlang进程性能分析方法
转自:http://yigechengxuyuan201307073459.iteye.com/blog/1901496Erlang tools lib中包含三个用于性能分析的工具:cprof,eporf和fprof。 cprof 提供函数调用计数,其对系统的性能影响最小 eprof 提供函数运行时间的百分比 fprof 通过将trace存储到文件,提供函数调用计数及运行时间统计信转载 2013-08-22 23:26:29 · 2410 阅读 · 0 评论 -
Erlang类型及函数声明规格
Erlang为动态语言,变量在运行时动态绑定,这对于我们获取函数的参数及返回值的类型信息具有一定的难度。 为了弥补这个不足,在Erlang中我们可以通过type及spec定义数据类型及函数原型。通过这些信息,我们对函数及调用进行静态检测, 从而发现一些代码中问题。同时,这些信息也便于他人了解函数接口,也可以用来生成文档。 意义: 定义各种自定义数据类型 定义函数的原创 2013-08-20 22:59:08 · 2031 阅读 · 0 评论 -
erlang多节点name conflict
今天游戏更新出现了一个问题,环境是这样的:顺序启动S1、S2、S3三个游戏服务器节点,能够正常工作。接着启动一个中央后台节点A,S1、S2、S3每隔几十秒的时间就会与节点A通信一次(使用erlang的进程通信方式),结果很快S2、S3崩溃了,S1能够正常工作。查看到S2上的错误报如下:(s2@192.168.0.1)1>=CRASH REPORT==== 18-Jul-20原创 2013-07-18 22:51:34 · 1927 阅读 · 1 评论 -
windowsk中一个erlc编译错误
windows下erlc编译错误:E:\my_server>erlc -o ebin src/*.erle:/my_server/src/*.erl:none: I/O errorerlc -o ebin src/*.erl命令在linux上是能够正常工作的,但在windows上却出现问题。原因是linux下的shell能够自动解释*.erl,windows shell却没原创 2013-05-14 16:16:39 · 2345 阅读 · 0 评论 -
erlang中sasl与错误日志
erlang应用都会启动一个sasl应用,sasl的一个重要功能便是可以记录系统进程相关日志,如进程启动、结束、崩溃错误等信息。sasl的日志功能是基于erlang自带的日志模块error_logger来实现的sasl中定义了下面3个错误处理 sasl_report_tty_h :主管报告、崩溃报告和进度报告格式和将 stdio .sasl_report_fi原创 2013-08-15 23:33:05 · 6748 阅读 · 0 评论