保存/还原解释器运行状态以恢复中断计算

resume的Python项目详细描述


#恢复模块

此模块支持在不同的执行中保存和恢复同一个解释器
状态,在检查点文件中保存局部变量和一些类似随机状态的内部状态。

只要在函数
2的请求处创建一个检查点设置第一个运行时变量
3。在进化过程之前调用restore()
4执行任何计算周期
5。同时调用sync()或save()以方便存储当前状态。

如果代码因某种原因中断,则下一次执行将:

1。使用相同的检查点定义来定位保存的状态。
2.定义与初始占位符相同的变量
3。调用restore()将从磁盘加载这些变量
4计算周期从上次保存的状态继续。
5相同的sync()或save()将继续保存您的step forward work save。

**注意**:


-检查点的名称是从函数名中自动神奇地选择的。
-sync()仅当上次保存所用的时间大于(在构造函数中传递的)速率时才会保存状态
-save()始终将状态转储到磁盘中
-使用numpy.random模块代替python random模块,因为python库中缺少seed
恢复。
相反,numpy提供get_state()和set_state()。




结果,我们希望在失败或环境变化的情况下恢复计算进度。
BR/>与现有代码的整合必须是无缝的,将所有细节隐藏到用户。实际上,只有3条代码行应该插入到现有代码中。
BR/> 1。实例化一个检查点,通常在代码功能开始时。如果重新运行
3,请选择恢复点。决定何时在循环计算中保存内部状态。

=质数[-1]

,而n>0:
candidate+=1
对于素数中的p:
如果不是candidate%p:
break
否则:
素数。append(candidate)
n-=1
返回素数
````

我们可以使用检查点支持重用以前的计算。

分别是:

`` python
def compute戡primes(n=10):
“compute n next primes”
chp=Checkpoint()
定义算法的初始状态
i=2
primes=[i]
candidate=primes[-1]

还原以前的工作(如果有)
chp.restore();注意'n'保留当前调用值

下一个调用将从这里继续
chp.save()
return primes
````


>和一些测试代码
>
````python
>>;n=5
>;primes_1=compute_primes()
[2,3,5,5,7,11,13,17,17,19,23,29,31]
>>>br/>>>2,3,5,5,7,11,13,17,19,23,17,23,29,31]
>>>>>>;primes primes primes 2=compute primes primes primes 2=2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53]
>;>assert len(primes_1)>;0
>;>assert len(primes_2)==len(primes_1)+n
````

py random state以保证进程不会中断时的相同结果
-默认情况下检查点存储在“.checkpoints/”隐藏文件夹中。
-默认情况下,如果las update超出缓存范围,检查点将被丢弃。
-默认情况下,检查点存储所有基本类型和numpy类型。
-代码为alpha格式欢迎对pull请求的任何评论。





````
>$pip install restup
````




或者自己下载并改进代码:)在开发模式下安装在主目录


```````
python setup.py py py develop--用户
````





python版本






``````````7个但是,与Python3.x版本没有任何不兼容的地方。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java ProcessBuilder在使用多个参数时运行不正常   java如何使用Spring数据ORM/JPA创建EntityManagerFactory?   将Velocity宏转换为Java指令   internet上的Java TCP/IP服务器客户端通信   java为什么JDK 8允许一个局部内部类(在方法内部)访问封闭方法的非最终局部变量?   基于Java的比率算法   java应用程序在选择列表首选项时出错   java保存对象以供以后使用   java如何使用MySQL JDBC驱动程序连接Android和MySQL   java Zipkin可以用于控制台应用程序   java单击刷新Servlet页面显示重复内容   java如何递归地反转字符串数组?   java如何使用inputStream作为outputStream的文本?   java扩展令牌选择操作符   java在映射中使用通用枚举类   arraylist如何使用JAVA流从对象列表中查找平均值   windows将FileInputStream和FileOutputStream传递给ffmpeg进行转码(使用JAVEJava音频视频编码)   java Ant脚本在执行CVS签出后找不到目标   重复值情况下的java插入排序,双链表ADT   java如何在Accumulo中获取数据库查询计数