相同點:
站在用戶的角度思考問題,與客戶深入溝通,找到茫崖網站設計與茫崖網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:成都網站設計、網站制作、企業官網、英文網站、手機端網站、網站推廣、主機域名、雅安服務器托管、企業郵箱。業務覆蓋茫崖地區。都采用了分代的機制。
都支持并發GC。
都沒有采用引用計數方式,而是采用了追蹤技術。
.NET中,可以通過代碼GC.Collect() 強制要求CLR進行垃圾回收(由于垃圾回收是異步的,CLR有一個專用的線程負責垃圾回收,因此,即使調用GC.Collect,也并不是實時的調用了Finalize,因此要保證確實調用了析構方法,可以使用語句GC.WaitForPendingFinalizers()來確保析構方法真的被運行了,參考http://cnn237111.blog.51cto.com/2359144/1343004)
Java中也可以通過System.gc() 強制要求進行垃圾回收。(事實上也僅僅是建議JVM執行垃圾回收,JVM并不一定立即做回收行為。)
不同點:
CLR預留了一塊大空間,稱作large object heap (LOH),目的是當有大對象(超過85000字節的)需要分配空間時,就可以放在這里。
這塊地方和分代機制的不同之處在于,這個地方只有當發生full GC的時候,才會回收,而且這塊地方不會被壓縮。
Java中可以通過配置參數,使得大對象(大于設定的閾值)直接進入老年代(避免在年輕代上做大量的復制操作)。
JVM回收的內存的,僅僅在某些條件下才返回給操作系統。(詳見:http://stackoverflow.com/questions/366658/java-6-excessive-memory-usage#367933)
.NET回收的內存,直接給返還給操作系統。
JVM在的垃圾回收機制,提供了大量的可配置參數。
而CLR的垃圾回收機制幾乎沒什么可以配置的(僅有的配置似乎就是工作站模式(Workstation)和服務器模式(Server))。
都支持并發GC。JAVA是在老年代上支持并發GC,采用的CMS收集器。
.NET的并發GC只在第2代上,并且在工作站模式下才會有。
Java分成年輕代,老年代,永久代。
.NET分第0代,第1代,第2代。
.NET中采用了標記,壓縮的方式。
JAVA由于收集器很多,因此不限于一種算法。
年輕代 | 老年代 | 方式 | |
Serial收集器 | 復制算法 | 單線程,stop the world | |
SerialOld收集器 | 標記整理算法 | 單線程,stop the world | |
ParNew收集器 | 復制算法 | 標記整理算法 | 多線程,stop the world |
Parallel Scavenge收集器 | 復制算法 | 多線程,stop the world | |
CMS收集器 | 標記清除 | 單線程 | |
G1收集器 | 復制 | 標記整理 |
Java垃圾回收的幾篇文章
http://www.cnblogs.com/shudonghe/p/3457990.html
http://blog.csdn.net/zhangerqing/article/details/8214365
.NET垃圾回收的幾篇文章
https://msdn.microsoft.com/zh-cn/library/ee787088(v=vs.110).aspx
http://www.mincoder.com/article/4284.shtml
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
當前題目:Java和.NET中的垃圾回收機制比較-創新互聯
轉載來于:http://vcdvsql.cn/article34/ggpse.html
成都網站建設公司_創新互聯,為您提供網站排名、云服務器、全網營銷推廣、標簽優化、用戶體驗、網站維護
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯