麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

垃圾自動收集系統指導 (1)

2019-11-18 13:26:03
字體:
來源:轉載
供稿:網友

  自動內存治理讓開發人員聚焦于應用程序邏輯上(例如,報表、解決數學問題)而不是內在細節,如內存分配。但是流行的計算機語言,如C和C++,直到最近才為支持自動內存治理提供了標準的方法。通用性和標準化是伴隨著受控虛擬機的出現而產生的,這些虛擬機能執行中間語言,例如用于運行java或者.NET語言的虛擬機。
  一個事實上不太困難但是需要解決的有趣問題存在于自動內存治理領域中。問題的一半,即為一個程序分配內存是相對輕易解決的――難以解決的部分是程序結束時留下的一塊內存。不再需要的內存,或者叫垃圾內存,由一個垃圾(內存)收集程序收集。其目的是在內存一變成垃圾時就將其釋放掉,這樣假如需要的話后來的程序就能重復使用這部分內存。
  許多不同類型的算法已經能夠處理內存治理的問題,但是仍沒有一次解決所有問題的最好方法。本文所要討論的算法是現在在Java和.NET虛擬機中使用的最流行的垃圾收集程序(GC)中的幾種。垃圾收集算法或者是在對象被參照或者參照解除過程中被執行,或者是在快照模式下執行,后者就似乎應用程序的內存分配情況被定期凍結住,同時收集算法被運行,來找出垃圾。
  參照計數
  最直觀的自動內存治理算法可能就是參照計數了。假如你不停地跟蹤程序正在參照的是哪個對象,這些對象必須仍然是程序需要的。要實現這個算法,每個對象都有一個數據字段用于更新,以把握有多少其他的程序對象在參照(也就是說,指向)它。任何指向對象自身的參照都被忽略掉。假如計數到達了0,這個正在被考察的對象就被認為是垃圾。假如一個對象沒有被任何程序參照,它事實上在內存里就是孤立的。從內存和性能的角度來看,這是收集垃圾內存最有效的方法。
  不幸的是,計算機科學家在這個算法上面臨一個無法克服的問題。假如兩個對象或者一大串對象都相互指向對方,而且這一堆對象被從內存中孤立出來,那么就沒有明顯的方法指明這樣的循環。既然所有的對象都含有一個至少為1的參照計數,那么它們就會一直保持非垃圾狀態。
  由于有這個問題,參照計數在現代虛擬機中不再常用。實際上,Java只對分布式對象(即遠程方法的調用)使用參照計數,這種方法是從Modula-3的網絡對象借用來的。分布式內存治理對垃圾收集產生了新的限制。這些在被較慢的對象訪問和參照時可能在網絡中丟失的東西必須要處理。盡管參照計數會讓循環的垃圾對象存活在內存中,但是出于對性能和適用性的考慮,它仍比其它算法更適合垃圾收集。
  標記和清除
  標記和清除垃圾收集法看上去總是開發人員開發新系統時首選的垃圾收集法。這在理論上要比其它系統更輕易實現,但是心里應該清楚的是,這個輕易是相對的。這種算法在很多較早版本的Java虛擬機里使用過,現在仍然作為高級垃圾收集程序的子算法。
  標記和清除是從穿越某個標準系統對象的指針開始的。這個對象對于虛擬機來說是非常要害的,因為假如這個對象將不再存在,那么這個虛擬機就結束了任務(也就是說程序執行完了)。每個通過穿越指針時碰到的對象被標記為“訪問過”。這樣通過遞歸的方式,所有碰到過的對象的所有指針都被穿越。實際上,這項操作穿越了位于系統標準對象根部的整個指針參照樹,將沿路碰到的對象都標記一遍。
  一旦這一步驟完成,算法就檢查已知的存在對象的完整列表。假如發現有任何對象沒有被標記,它們就被認為脫離了系統(即垃圾)。
  這個算法很徹底、很簡單,但是卻擺脫不了一些很惱人的問題。首先它要求在其工作時所有的程序都要暫停運行。在穿越途中對參照樹的更改也會給這個算法帶來不利的影響。這個算法要對早期臭名昭著的Java執行的停頓負責。同時,斷斷續續的清除導致了內存碎片,這讓(內存)分配程序的負擔更重。最終必須進行內存整理已清除碎片,這又會導致執行過程中更多的停頓。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 一区二区三区国产在线 | 精品国产91久久久久久久妲己 | 亚洲成人在线免费观看 | 最近免费观看高清韩国日本大全 | 日韩精品二区 | 久久久成人一区二区免费影院 | 一区二区三区在线视频观看58 | 91成人精品 | 视频一区二区三区在线观看 | 极品xxxx欧美一区二区 | 欧美成人一级 | 精品黑人一区二区三区国语馆 | 亚洲第一综合 | 欧美a区 | 久久色在线 | 在线观看免费毛片视频 | 久久久久久久久国产 | 免费观看欧美一级片 | 涩涩99| 牛牛热这里只有精品 | 99ri在线| 色吧综合网 | 草莓视频在线导航 | 日本一区二区免费在线观看 | 午夜精品老牛av一区二区三区 | 亚洲最新黄色网址 | 羞羞视频在线免费 | 毛片小网站 | 免费看毛片网站 | 欧美女同hd | 精品国产一区二区亚洲人成毛片 | 亚洲成人免费影视 | 在线天堂中文字幕 | 密室逃脱第一季免费观看完整在线 | 在线观看中文字幕av | 99精品无人区乱码在线观看 | 日韩在线毛片 | 国产影院一区 | 天天草天天干天天 | 成人毛片100部免费观看 | 手机黄色小视频 |