国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

C#內存管理優化實踐

2019-11-14 15:46:27
字體:
來源:轉載
供稿:網友

    內存優化暢想系列文章已經結束了,很多讀者讀完之后可能覺得“然并卵”,畢竟都是給微軟提的建議而已,現在都沒有實現。那么為了優化內存,有沒有什么我們現在就能用的技巧呢?我的答案是:有。網上關于.net內存優化的文章有許多,我不想一一轉載,這里只介紹兩個我自己想到的方法,如有雷同,純屬巧合。當然,我只是.net的業余愛好者,實踐經驗有限,所說的方法也只是理論分析得出的而已,并未經過實際測試驗證,所以也未必正確,歡迎讀者批評指正。

1. 即使是“垃圾”對象之間的互相引用,也應(在其成為垃圾之前)盡可能解除。可能有人認為這樣做沒有必要,因為都是垃圾對象了,下次GC時就都會被釋放了,它們之間存在互相引用,又有什么關系呢?這種想法忽略了一個事實----GC是分代進行的。如果一個1代或2代的垃圾對象保有一個0代垃圾對象的引用,那么下次發生0代GC時,這個0代垃圾是不會被回收的,要等到1代或2代GC時才會跟引用它的垃圾一起回收。這就導致了本該盡早回收的對象真正被回收的時間晚了許多,年輕代的回收不徹底,可能無法釋放足夠的內存,進而引發更多次的GC。

2. 巧用弱引用緩存對象。使用弱引用實現緩存最合適了,能夠自動根據內存壓力釋放緩存對象,取得平衡。保存對某些垃圾對象的弱引用,可以在GC之前隨時“從垃圾里撿出寶貝”,實現“廢物利用”,使得真正分配對象的次數減少,能夠大大減輕GC的壓力,降低內存“占用率”的同時提高內存“利用率”。這里就不展開詳說了,等有時間我打算寫一個弱引用緩存類,供大家研究。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 白山市| 平武县| 南溪县| 临潭县| 博野县| 镇巴县| 江山市| 双柏县| 伊金霍洛旗| 舞阳县| 西吉县| 保定市| 上栗县| 无锡市| 东宁县| 班玛县| 华亭县| 阳春市| 绥滨县| 疏勒县| 左云县| 丹凤县| 门源| 德令哈市| 无棣县| 岑溪市| 大理市| 五指山市| 克拉玛依市| 福鼎市| 邵阳市| 孟州市| 弋阳县| 承德市| 伊春市| 双牌县| 水富县| 凤翔县| 明星| 青海省| 乐昌市|