【发布时间】:2016-10-10 01:13:39
【问题描述】:
这一定有答案,但我找不到。我正在使用一个非常大的 python 模块,称为 quippy。有了这个模块,我们可以定义一个分子间势能在 ASE 中用作计算器,如下所示:
from quippy import *
from ase import atoms
pot=Potential("Potential xml_label=gap_h2o_2b_ccsdt_3b_ccsdt",param_filename="gp.xml")
some_structure.set_calculator(pot)
这是脚本的开始。问题是import 大约需要 3 秒,pot=Potential... 在 100% cpu 负载下需要大约 30 秒。 (我相信这是由于解析了一个大的 ascii xml 文件。)如果我要交互输入,我可以保持导入模块并定义潜在的,但是在运行脚本时,它会在每次运行时再次完成。
我可以在运行之间将模块和潜在对象保存在内存/磁盘中吗?也许让python进程空闲并将这些东西保存在内存中?或者在解释器中运行这些行并以某种方式从那里调用脚本的其余部分?
任何方法都可以,但不胜感激!
【问题讨论】:
-
您多久调用一次脚本?如果您有足够的 RAM,您的操作系统将缓存
import期间使用的模块文件。如果要存储pot,只需将其写入文件,例如使用pickle。
标签: python python-2.7 optimization import load