as來自非常好的libxml2不是線程安全的,我的問題是(並且我沒有可能檢查出來),有多少內存(粗略數字)丟失到xmlParseFile()
以及更重要的是 - 這種內存丟失累積了很多電話xPF()
?xmlCleanupParser()內存丟失?
3
A
回答
3
儘管事實上,malloc()
和free()
或任何內存處理實現不一定是線程安全的,但總是存在共享/全局內存的問題。只要它們是隻讀的,對不同線程中的同一文件的文件句柄並不是那麼糟糕。
但是,從libxml2的2.4.7,你也許可以在API級別,使線程安全的,每文檔根單絲:http://www.xmlsoft.org/threads.html
當我看的libxml2 2.9.1的來源,我儘管全球互斥,儘管線程安全已得到充分實施,但還是有原子分配功能。
+0
感謝您的回答,我將嘗試在OS/2下獲取該線程標記以編譯該lib並強制在我的遺留代碼的所有部分中使用Init-Function。 –
1
繼意-事項提出的意見,並使用唯一的工具,我發現OS2(這個古老的老IBM的操作系統)下檢查內存,有接縫在無差異使用xCP()或選擇不(對我來說)之間的記憶損失。
相關問題
- 1. Valgrind可能丟失內存
- 2. 內存丟失Valgrind的
- 3. Munin內存圖丟失
- 4. 內存泄漏:可能丟失案例
- 5. 使用valgrind在c中丟失內存
- 6. Prototype的Ajax.Updater導致JavaScript內存丟失?
- 7. Git Stash的內容丟失
- 8. Qt畫內容丟失
- 9. 丟失TThreadList的內容
- 10. Android-標籤內容丟失
- 11. Viewpager丟失的內容
- 12. 轉儲Valgrind報告的丟失內存內容
- 13. 內存緩存連接數永不丟失,持續增長
- 14. Django緩存,丟失密鑰
- 15. SourceTree git存儲丟失
- 16. SSMS存儲過程丟失
- 17. Ubuntu崩潰,Eclipse丟失.metadata,Java透視消失,丟失,丟失
- 18. UseConcMarkSweepGC詳細gc輸出顯示內存丟失
- 19. 全內存轉儲丟失堆棧信息
- 20. 客戶端斷開後,Socket.io內存不會丟失
- 21. 查找丟失的git存儲的內容
- 22. Apache Curator - Zookeeper連接丟失異常,可能的內存泄漏
- 23. 作爲參數傳遞給C++類時的內存丟失
- 24. 程序在進程中丟失內存引用
- 25. Visual Studio 2008中的內存和註冊面板丟失
- 26. 外部配置文件(configSource)從內存中丟失(MVC,C#,ASP.net)
- 27. 在initWithCoder中初始化的內存在drawView中丟失
- 28. 寫入到內存流和丟失的Unicode
- 29. NSArray與嵌套對象在內存中「丟失」對象
- 30. 在內存中比較兩個丟失和過濾器等於
我出於某些原因,不能使用valgrind或其他工具 –
在進行libxml2調用時不能鎖定所有其他代碼嗎? –
只需在無限循環中運行'xmlParseFile()',即使累積內存丟失,您也很快就會發現。或者在它們之間延遲1000次運行它,然後查看平臺的進程查看器,查看內存使用情況是否會隨着時間的推移而增加。 –