這必須有一個答案,但我無法找到它。我正在使用一個叫做quippy的非常大的python模塊。有了這個模塊可以定義分子間潛在的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...
需要大約30秒,CPU負載爲100%。 (我相信這是由於解析一個大的ascii xml文件。)如果我將以交互方式打字,我可以保持導入的模塊和潛在的定義,但是在運行腳本時,它會在每次運行時再次完成。
我可以在運行之間將模塊和潛在對象保存在內存/磁盤中嗎?也許保持一個Python進程閒置並將這些東西保存在內存中?或者在解釋器中運行這些行,並以某種方式從那裏調用腳本的其餘部分?
任何方法都很好,但有些幫助是值得讚賞的!
你多久打一次電話?如果你有足夠的內存,你的操作系統會緩存'import'中使用的模塊文件。如果你想存儲'pot',只需將它寫入一個文件,例如使用'pickle'。 – MisterMiyagi