2010-02-04 59 views
2

我有一個應用程序通過從磁盤加載大的pickle trie(173M)開始,然後使用它進行一些處理。我正在對處理部分進行頻繁更改,這很不方便,因爲加載這個trie需要15分鐘左右。我正在尋找一種方法來消除測試過程中的重複加載,因爲這種方式不會改變。在Python中的內存中保存大對象時的代碼更改

我不能做的一件事就是使用更小版本的trie。

我到目前爲止的想法是memcached,並將trie轉換爲接受查詢並返回我需要的數據的Web服務。

我在尋找的是最省力的路徑,在這種路徑中,我可以重複更改和重新加載處理代碼,同時保持對內存中樹狀結構的訪問。直接引用樹會更可取,因爲這需要最少的代碼更改,但我真的希望儘量減少總體工作量。

+0

數據庫無法工作的任何特定原因? – goldenratio 2010-02-05 00:55:32

+0

我想不出它會起作用的原因。 – danben 2010-02-05 03:35:28

回答

2

您可以嘗試使用Pythons內置的reload方法或livecoding項目。

+0

謝謝,'reload'是完美的。 – danben 2010-02-04 22:27:50

0

reload的常見問題是實例保持綁定到舊版本的類。如果你不保留舊的實例,reload很簡單,工作得很好。

+0

正確 - 我認爲這將是這種情況,並修改我的代碼來重新加載後在重新加載的模塊中構造一個類的新實例。這是我需要的模塊中唯一的部分,我只需要一個,所以它運行良好。 – danben 2010-02-04 22:29:02