創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!
這篇文章將為大家詳細講解有關c#客戶端內存優(yōu)化的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
背景概述
C# 開發(fā)客戶端系統(tǒng)的時候,.net 框架本身就比較消耗內存資源,特別是xp 這種老爺機內存配置不是很高的電腦上運行,所以就需要進行內存上的優(yōu)化,才能流暢的在哪些低端電腦上運行. 想要對C# 開發(fā)的客戶端內存優(yōu)化需要了解以下幾個概念。
虛擬內存
這里引用百度百科的概念:虛擬內存是計算機系統(tǒng)內存管理的一種技術。它使得應用程序認為它擁有連續(xù)的可用的內存(一個連續(xù)完整的地址空間),而實際上,它通常是被分隔成多個物理內存碎片,還有部分暫時存儲在外部磁盤存儲器上,在需要時進行數(shù)據(jù)交換。目前,大多數(shù)操作系統(tǒng)都使用了虛擬內存,如Windows家族的“虛擬內存”;Linux的“交換空間”等。
一句話概括虛擬內存既是使用磁盤,物理磁盤進行虛擬化出來的內存空間。
物理內存
物理內存(Physical memory)是相對于虛擬內存而言的。物理內存指通過物理內存條而獲得的內存空間,而虛擬內存則是指將硬盤的一塊區(qū)域劃分來作為內存。內存主要作用是在計算機運行時為操作系統(tǒng)和各種程序提供臨時儲存。常見的物理內存規(guī)格有256M、512M、1G、2G等,現(xiàn)如今隨著計算機硬件的發(fā)展,已經(jīng)出現(xiàn)4G、8G甚至更高容量的內存規(guī)格。當物理內存不足時,可以用虛擬內存代替。在應用中,自然是顧名思義,物理上,真實存在的插在主板內存槽上的內存條的容量的大小??从嬎銠C配置的時候,主要看的就是這個物理內存。
GC 垃圾回收機制
簡介
C#中和Java一樣是一種系統(tǒng)自動回收釋放資源的語言,在C#環(huán)境中通過 GC(Garbage Collect)進行系統(tǒng)資源回收,在數(shù)據(jù)基本類型中介紹到,C#數(shù)據(jù)類型分為引用類型和值類型,
值類型保存在Stack上,隨著函數(shù)的執(zhí)行作用域執(zhí)行完畢而自動出棧,所以這一類型的資源不是GC所關心 對象。GC垃圾回收主要是是指保存在Heap上的資源。
.NET的GC機制有這樣兩個問題:
GC并不是實時性的,這會造成系統(tǒng)性能上的瓶頸和不確定性。所以有了IDisposable接口,IDisposable接口定義了Dispose方法,這個方法用來供程序員顯式調用以釋放非托管資源。使用using語句可以簡化資源管理。
托管資源和非托管資源
上面介紹到,GC只釋放托管資源,那么什么是托管資源和費托管資源。
垃圾回收器在清理的時候會調用Object.Finalize()方法。默認情況下,方法是空的,對于非托管對象,需要在此方法中編寫回收非托管資源的代碼,以便垃圾回收器正確回收資源。
GC進行垃圾回收是系統(tǒng)決定的,下面是進行強制回收的執(zhí)行代碼(非特殊情況下不要使用此方法,會影響系統(tǒng)效率,削弱垃圾回收器中優(yōu)化引擎的作用,而垃圾回收器可以確定運行垃圾回收的最佳時間)
//對所有代進行垃圾回收。 GC.Collect(); //對指定的代進行垃圾回收。 GC.Collect(int generation); //強制在 System.GCCollectionMode 值所指定的時間對零代到指定代進行垃圾回收。 GC.Collect(int generation, GCCollectionMode mode);
本文題目:c#客戶端內存優(yōu)化的方法-創(chuàng)新互聯(lián)
轉載來源:http://chinadenli.net/article24/desgje.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設、品牌網(wǎng)站建設、自適應網(wǎng)站、建站公司、服務器托管、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)