我有一個使用boost序列化的程序,該程序在程序啓動時加載並在關閉時保存。C++ Boost對象序列化 - 定期保存以保護數據
每隔一段時間,程序都會因這個或那個原因而崩潰,我認爲這是相當正常的。問題是,當程序崩潰時,通常這些對象根本不會被保存。其他時候,有些將會丟失或數據將被損壞。如果用戶丟失數月和數月的數據,這可能是災難性的。在一個完美的世界中,每個人都會備份他們的數據,並且他們可以回滾數據文件。
我的第一個解決方案是在運行期間定期將對象保存到不同的臨時數據文件中。這樣,如果程序崩潰,他們可以以最小的數據丟失恢復到臨時數據文件。我關心的是對績效的影響。據我瞭解(糾正我,如果我錯了),一旦你保存一個對象,它不能再被使用?如果是這種情況,那麼定期保存例程將涉及保存和刪除我的指針,然後再次加載它們。
我的第二個解決方案是在程序啓動時簡單複製數據文件。用戶的數據丟失將限於該會話。但是,這可能還不夠,因爲有些用戶可能會在幾天或幾天內運行該程序。
任何輸入,將不勝感激。
在此先感謝。
「_once您保存對象,它可以不再使用_「你在哪裏遇到過這個? – Sveltely
我記不清了。我記得當我第一次使用序列化庫時,在Boost文檔中的某處閱讀它。 – Paul