使用binary_iarchive over text_iarchive有什麼性能優勢嗎?我只知道binary_iarchive是不可移植的,text_iarchive是可移植的。我正在尋找序列化庫,通過它我可以將stl :: map直接寫入文件並稍後閱讀。text_iarchive和binary_iarchive之間的差異
1
A
回答
1
爲什麼不寫一個測試用例和配置文件呢?但我會假設二進制更快,因爲例如32位int
文本可能佔用10個字節(80位),但在二進制它將是4個字節。另一方面,這意味着如果您的大部分值都低於999(以10爲底),則使用文本可能會更快。無論如何,運行一些典型的數據集和配置文件,看看什麼最適合你。
然後,例如boost::serialization
會增加一些開銷以跟蹤寫入的內容以及是否需要處理指針。
但是,文件I/O通常非常緩慢,因此如果性能是您關心的問題,您應該儘可能從文件中讀取儘可能少的字節。
另一方面,如果您在程序中讀取一次文件,即緩慢的文件I/O不會影響整個性能,那麼我將使用可移植性。但請記住,不能保證數字可以安全地從64位程序移植到32位程序。如果64位系統有64位int
s,而32位系統有32位int
s,即使使用文本存檔,也可能會出現問題。
0
文本存檔將比二進制文件更大。如果便攜性是您的首要關注點 - 請考慮使用portale binary archive。
相關問題
- 1. /和/ **之間的差異
- 2. PHP之間的差異()和[]
- 3. '//'和'///'之間的C++差異
- 4. VBA:&和+之間的差異
- 5. 之間的差異和::: ++
- 6. 運算符「==」和「=」之間的差異運算符「==」和「=」之間的差異「==」和「=」
- 7. PHP:差異之間 - >和::
- 8. Htaccess - 和*之間的差異:。*和。+
- 9. 總和和+之間的差異?
- 10. Url.Action和Html.RenderActionLink和Html.RenderAction之間的差異
- 11. Serilog:之間{..} {差異@ ..}
- 12. Elf32_Phdr的p_filesz和p_memsz之間的差異
- 13. Go和Cython之間的差異
- 14. vcruntime140d_app.dll和vcruntime140d.dll之間的差異
- 15. RestKit和AFIncrementalStore之間的差異
- 16. htop和golang之間的差異readmemstats
- 17. platformwebservices和ycommercewebservices之間的差異
- 18. spawn/1和spawn/3之間的差異
- 19. TTL和Keep alive之間的差異
- 20. strstream和stringstream之間的差異
- 21. JAVA和C#之間的LdapConnection差異
- 22. c#和java之間的差異寫()
- 23. OpenShift和Kubernetes之間的差異
- 24. appengine_django BaseModel和db.Model之間的差異
- 25. Formsauthentication.SetAuthCookie和Session之間的差異用法
- 26. 有self.current_user和@current_user之間的差異?
- 27. cabal包之間的差異readPackageDescription和parsePackageDescription
- 28. SmsStatusCallback和StatusCallback之間的Twilio差異
- 29. ipython和python之間的輸出差異
- 30. Redux中`Provider`和`connect`之間的差異