c++17进阶(3)-Boehm GC垃圾回收(1)
Boehm-Demers-Weiser garbage collector,也就是著名的Boehm GC,是計算機應用在C/C++語言上的一個保守的垃圾回收器,可應用于許多經由C/C++開發的項目,同時也適用于其它運行環境的各類編程語言,包括了GNU版Java編譯器運行環境,以及Mono的Microsoft .NET移植平臺。同時支持許多的作業平臺,如各種Unix操作系統,微軟的操作系統(Microsoft Windows),以及麥金塔上的操作系統(Mac OS X),還有更進一步的功能,例如:漸進式收集(incremental collection),平行收集(parallel collection)以及終結語義的變化(variety of finalizer semantics)。
在gc_source子目錄中有很多版本。目前比較穩定的版本是gc-8.0.4.tar.gz。注意,這使用了新的版本編號方案,可能需要單獨的libatomic_ops下載(見下面)。
如果失敗,請嘗試gc_source中最新的顯式編號版本。較晚的版本可能包含額外的功能、平臺支持或錯誤修復,但可能沒有經過很好的測試。
版本7.3及更高版本要求您下載相應版本的libatomic_ops,該版本應該可以在https://github.com/ivmai/libatomic_ops/wiki/Download中獲得。當前版本也可以通過gc_source/libatomic_ops-7.6.10.tar.gz獲得。您需要將其放在libatomic_ops子目錄中。
以前,最好使用相應版本的gc和libatomic_ops,但是對于最近的版本,應該可以混合和匹配它們。
從8.0開始,只有當編譯器不理解C原子時才需要libatomic_ops。
GC源代碼的開發版本現在與可下載的包一起駐留在github上。GC樹本身在https://github.com/ivmai/bdwgc/上。GC需要的libatomic_ops樹在https://github.com/ivmai/libatomic_ops/上。
將Boehm GC垃圾收集器應用于C++程序,通常來說,只要簡單的將malloc調用用GC_malloc取代,將realloc取代為GC_realloc調用,這樣,就不需要使用free的函數。
總結
以上是生活随笔為你收集整理的c++17进阶(3)-Boehm GC垃圾回收(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++17进阶(2)-Lua扩展(1)
- 下一篇: erlang精要(31)-尾递归版的翻转