給定一個大的(4.5 GB代碼庫)python測試框架,其執行涉及數十個文件,其中許多文件不能直接被pickle-able,是否可以將程序的初始執行封裝在單行函數中,創建一個Stackless圍繞該函數的tasklet,並且在執行期間,pickle tasklet作爲保存整個程序狀態的一種方式? Stackless'tasklet酸洗能力的限制是什麼?使用Stackless Python來保存大型運行程序的狀態?
2
A
回答
2
這確實是由Stackless Pickling
一個無堆棧的主要特點提供了一個可能性是它的鹹菜能力和unpickle微進程。這意味着一個tasklet中的正在運行的程序可以持久地存儲到一個文件或字符串中。之後,它可以再次恢復,並可以繼續運行在先前暫停的位置。這不需要在同一臺機器上!:
所以對於我們的問題「有可能」的答案是「是」。
作爲「怎麼做」的問題,我認爲上面的鏈接提供了一個具體的例子。嘗試它併發布其他問題,如果它不起作用。鑑於你的代碼庫的大小(4.5GB的Python 源文件是相當巨大!),也許你會達到Stackless的極限?
2
更具體地說: Stackless爲許多內置元素(如執行框架和模塊以及其他運行時對象)添加了酸洗支持。但是,代碼(如類,函數和模塊) 。這意味着在另一臺機器上,必須通過導入機制訪問相同的對象。
換句話說,pickled執行狀態將包含當前局部變量以及所有這些變量,但代碼對象或模塊的內容將不會被picled。這些狀態需要在狀態爲unpickled時按名稱訪問。
相關問題
- 1. 保存外部運行程序的狀態
- 2. Jython保存程序狀態
- 3. 如何保存運行python程序的狀態以便恢復以後
- 4. 保存AngularJS應用程序的狀態
- 5. 保存應用程序的狀態
- 6. 保存布爾狀態,以便當應用程序再次運行時,該狀態已保存
- 7. 程序/ IDE保存正在運行的程序的狀態並稍後恢復
- 8. 保存Android應用程序狀態
- 9. android應用程序保存狀態
- 10. 應用程序狀態保存/恢復
- 11. 保存應用程序狀態
- 12. Android應用程序 - 保存狀態
- 13. 保存Java小程序的狀態
- 14. Python - 重新啓動之間保存程序的狀態?
- 15. 如何在python中保存硒web驅動程序的狀態?
- 16. 如何使用PowerShell保存c#應用程序的狀態?
- 17. DB行的保存狀態
- 18. 使用mksession保存vim狀態不會保存Ctrl-6狀態
- 19. 爲大型機器學習程序遠程運行python程序
- 20. 保存程序狀態(visual studio 2008)
- 21. 敲除 - 用放大保存狀態
- 22. Stackless Python和PyQt
- 23. Python保存大型模擬
- 24. 使用sharedPreferences保存應用程序狀態
- 25. 如何使用應用程序委託保存狀態
- 26. 如何在iPhone中使用NSUserDefaults保存應用程序狀態?
- 27. 保存列表狀態(行)?
- 28. Python的重新模塊 - 保存狀態?
- 29. 使用深度UINavigationController保存iPhone程序狀態
- 30. 保存狀態