2013-03-22 35 views
0

我對可怕的問題表示歉意。我是一個3D插件和腳本的業餘愛好者。快速寫入/讀取/緩存所描述的簡單信息的最快方法

我已經成功地想出了輸出粒子信息的最糟糕的方法(每個粒子每幀用於位置和對齊)。我的第一種方法是每行寫出10億個矢量到一個.txt,其中每一行代表一個幀。現在我只需寫出每幀的.txt文件並根據幀加載和關閉正確的文件。

是的,它很慢。而且愚蠢。隨你。你會建議我去/研究什麼方向?一個不同的文件類型?答:檢查谷歌:斌,也許?或者,我的智障方法實際上不需要很長時間,而其他的東西是讓事情變得更慢?我不需要一個詳盡的答案,只是一些一般的信息讓我朝着正確的方向前進。

非常感謝。

回答

0

如果這個信息將被另一個python應用程序讀取(特別是如果它的同一個應用程序寫出來的話)只會查看你的數據結構。只需在內存中構建它們並使用pickle將它們轉儲到二進制文件。注意事項:

1)您是否有記憶一次完成所有記憶,或者記憶必須一次完成?在第一種情況下,您可以製作大量組合文件,您需要在第二種情況下以每幀一幀的速度進行。如果您的內存不足,則yield聲明是您的朋友。 2)Pickled文件需要使用相同的python版本才能可靠,所以你需要確保所有的讀寫應用程序都在同一個python版本中。 3)pickled文件是二進制的,所以不是人類可讀的。

如果您需要與其他應用程序交換,請查看Alembic,這是針對此類問題設計的開源文件格式 - 烘乾大量粒子或模擬數據。有一個commercial exporter avalable from EcoCortex,它帶有一個用於處理Alembic數據的Python模塊