我需要反序列化1.5GB的txt文件。我使用code.google.com/p/protobuf-net/中的protobuf-netprotobuf-net的大文件反序列化
有時,在不同的地方出現不同的異常(空引用,內存訪問衝突)時會失敗(大約50%)。我注意到,如果處理器負載很低,那麼失敗的概率正在下降。
我該怎麼做才能避免這種故障?
這裏是反序列化代碼的例子:我有錯誤代碼0000005一FatalExecutionEngineError
public static History LoadFromFile(string path)
{
using (var fileStream = File.OpenRead(path))
{
var obj = Serializer.Deserialize<History>(fileStream);
return obj;
}
}
今天,但我不知道是什麼的代碼部分可能不安全。這不是一個常量錯誤,在重新啓動應用程序後,所有內容都能正常工作。
這裏是序列化的文件,我需要反序列化的例子: https://docs.google.com/file/d/0B1XaGInC6jg3ZXBZZDA3bHh3bVk/edit
困惑...的Protobuf!=文本。你能澄清你在做什麼嗎?也許有些代碼? –
我明白不同之處。首先,我出於性能原因序列化大量的.txt文件中的數據。順便說一下,當結果文件的大小超過2GB時,它會失敗。我認爲它的原因是protobuf-net.dll中的int變量之後,我嘗試將數據序列化爲多個文件,然後在反序列化之後得到整個對象。但在我上面提到的一些不同的錯誤出現後。 – user1958298
我將不得不調查2GB的問題,但是:被序列化的數據可能會影響它可以獲得的大小(有些東西可能需要緩衝)。順便說一句,核心谷歌protobuf文件建議對巨大的文件。但是:在再現它的過程中,你還沒有給我太多的幫助。我可以嘗試一些隨機的東西,但我不能保證我會得到一個repro。 –