Erlang动态编译热替换

          前几天研究ejabberd时,发现它log模块设置log_level采用动态编译方式,主要是基于dynamic_compile模块实现。于是基于它的动态编译进行了扩展,以到达可以动态代码编译并进行热替换的目的。在某些场合还是很实用的。废话少说,直接贴代码:

此模块需要依赖 ejabberd 里的 dynamic_compile.erl 模块

%%%----------------------------------------------------------------------
%%%		动态编译模块
%%% 		将目标模块代码字符串序列,动态编译并加载至运行VM中执行
%%%        动态调用执行,每次动态编译相当于一次热更新替换.
%%% 	    @author angine
%%%        例如:
%%% 						dynamic_code:c().
%%% 						mod_code:test().
%%% 					    mod_code:calc_val(10,20).
%%%----------------------------------------------------------------------

-module(dynamic_code).

-export([c/1,fc/1]).
-export([t/0,t1/0]).

-define(Mod_Name, "mod_code").

%% ----------------------------------------------------------------------
%% 					动态编译
%% 		参数  File  目标源代码文件路径  例如: File = "../ebin/mod_code.erl",
%% -----------------------------------------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值