簡體   English   中英

使用Stackless Python保存大型正在運行的程序的狀態?

[英]Using Stackless Python to save the state of a large running program?

給定一個大型(4.5 GB代碼庫)python測試框架,其執行涉及數十個文件,其中許多不是直接可腌制的,是否有可能將程序的初始執行包裝在一行函數中,從而創建一個Stackless Tasklet該函數,並在執行過程中對任務小程序進行腌制,以保存整個程序的狀態? Stackless的tasklet酸洗功能有什么限制?

這確實是無堆浸酸洗提供的可能性

Stackless的主要功能之一是其腌制和釋放小任務的能力。 這意味着Tasklet中正在運行的程序可以持久存儲到文件或字符串中。 以后,它可以再次還原,並且可以在先前停止的位置繼續運行。 不必在同一台機器上!:

因此,對於我們的問題“是否可能”,答案是“是”。

關於“如何做”,我認為上面的鏈接提供了一個具體的例子。 嘗試一下,然后發布另一個問題,如果它不起作用。 給定代碼庫的大小(4.5GB的Python 文件相當大!),也許您會達到Stackless的極限?

更具體地講:Stackless為許多內置元素(例如執行框架和模塊以及其他運行時對象)添加了酸洗支持。但是,諸如名稱,功能和模塊之類的代碼都按名稱被酸洗。 這意味着在另一台計算機上,必須可以通過導入機制訪問相同的對象。
換句話說,腌制的執​​行狀態將包含當前的局部變量及其所有內容,但是將不對代碼對象或模塊的內容進行腌制。 當狀態未選取時,需要按名稱訪問這些文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM