當前位置:編程學習大全網 - 編程軟體 - C++ GC到底是指什麽

C++ GC到底是指什麽

垃圾回收(gc)算法無非都是給每壹塊分配的內存提供引用計數,然後通過智能指針(smart pointer)自動完成引用計數的加減,如果引用技術減少到零,就代表沒有人使用該內存了,這塊內存就可以回收了。

garbage collector(gc)

如果可以正確的遵從這種gc的使用規則,也就是說妳可以正確無誤的使用智能指針,那麽理論上來說,就不可能存在內存泄漏。

但是現實並不象想象的那麽單純,那麽美好。壹方面,智能指針的概念仍然沒有被C++社區廣泛的理解應用,而且智能指針種類繁多,各有各的規則,在代碼量多了的時候,有時存在這樣那樣的失誤難免;另壹方面(應該是更加令人為難的壹點),並不是所有人都那麽喜歡用智能指針,而且原生指針的使用很多情形下避無可避,我們不得不在原生指針與智能指針之間進行轉換。

所以這樣的gc的最終結果是,掌握引用計數的規則最終似乎比掌握new/delete的規則容易不了多少,有時甚至讓新接觸該技術的程序員感到畏懼。另外,引用計數的引入,出乎意料的產生了壹個負作用:調試內存泄漏變得比原先困難多了。

所以引用計數和智能指針實現的gc不能從根本上解決內存泄漏問題。

  • 上一篇:怎樣用電瓶做家用電源?
  • 下一篇:計算機考試包括編程嗎?
  • copyright 2024編程學習大全網