简记erlang的热更新分析

本文介绍了Erlang的热更新机制,探讨了code server如何在不停止系统的情况下进行代码更新。文章详细讲解了Erlang的启动模式、代码加载方式、代码版本切换,并特别提醒了在控制台进行热更新时的安全指令。通过对code:purge()和code:soft_purge()的比较,强调了在热更新过程中保证数据完整性的关键点。
摘要由CSDN通过智能技术生成

   Erlang原本脱胎于电信行业,Jow Armstrong 在描述Erlang的设计要求时期中就提到了“软件维护应该能在不停止系统的情况下进行。”在实践中,我们也因为这种不停服务的热更新获益良多,终于不用再等到半夜没人的时候再做更新了,对于一些紧急的bug修复,热更新实在是一把圣剑(至秦玩dota的时候喜欢出圣剑),热更新的具体使用,以及它具体的运行过程是怎样的呢?

   在我们自己使用热更新之前,曾经读过这么一篇博客,博主叫 坚强2002,博文叫 erlang热更新,在这篇博文中,对erlang的 code server 对于运行的代码进行热更新的细节作了很详细的分析,非常感谢这位坚强2002热心的分享,结合这篇图文并茂的博文和erlang的官方文档上的介绍后,我才得以对erlang 的热更新有更为直观的印象。

  erlang 热更新的秘密都集中在code模块,code模块是Erlang code server 暴露出来的对外接口,其职责就是把已经编译好的模块加载到运行时环境。在erlang 的内核kernel中有着这么一个code server 它负责代码的运行时管理,我们在erlang的控制台输入 appmon:start().

然后点击kerner 我们就能看到神秘的code server 模块了

最左边的就是了。

 

代码的加载方式:

erlang在启动系统时,有embedded和interactive两种启动模式,默认是interactive模式启动,也可以通过设置启动参数把它设置成embedded启动:%erl  -mode embedded

这些在官方文档中都有说明。这两种方式有什么区别呢?

embedded模式受应用场景的先知,模块的加载都是需要显示指定code server 加载模块的顺序,一般在启动脚本中指定加载顺序。当然也可以在启动之后再使用code模块的函数来作明确的加载。

然而

interactive模式在系统启动的时候只有部分代码会被加载,通常都是一些运行时自己需要的模块,其他的代码模块都是在第一次被调用的时候动态加载,当调用一个方法时发现一个模块没有加载,code server 就会搜索并加载模块。

在interactive模式下,code server维护了一个搜索代码路径的列表,通常称作 code path, code 模块的 set_path(Path) , get_pat

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
主成分分析(Principal Component Analysis, 简记PCA)是一种常用的数据降维技术,用于将高维数据转换为低维数据,同时保留数据的主要特征。它通过线性变换将原始数据投影到一个新的坐标系中,使得投影后的数据具有最大的方差。这些新的坐标轴被称为主成分,它们是原始数据中方差最大的方向。 主成分分析的步骤如下: 1. 标准化数据:将原始数据进行标准化处理,使得每个特征具有相同的尺度。 2. 计算协方差矩阵:计算标准化后的数据的协方差矩阵。 3. 计算特征值和特征向量:对协方差矩阵进行特征值分解,得到特征值和对应的特征向量。 4. 选择主成分:根据特征值的大小,选择前k个特征值对应的特征向量作为主成分。 5. 数据投影:将原始数据投影到选定的主成分上,得到降维后的数据。 以下是一个使用主成分分析进行数据降维的示例代码: ```python from sklearn.decomposition import PCA # 假设X是一个包含n个样本和m个特征的数据矩阵 pca = PCA(n_components=k) # 设置要保留的主成分个数为k X_new = pca.fit_transform(X) # 对数据进行降维 # 输出降维后的数据 print(X_new) ``` 在这个示例中,我们使用了scikit-learn库中的PCA类来进行主成分分析。通过设置n_components参数为k,我们可以指定要保留的主成分个数。fit_transform方法用于对数据进行降维,并返回降维后的数据矩阵X_new。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值