內存佔用與殺毒軟件卡機原因詳解

物理內存是計算機的主存儲設備,磁盤是副存儲設備。也就是說,磁盤可以不要,但是內存不能沒有。內存一部分是支持CPU運算的存儲空間的擴展,直接與CPU通訊(相當於低速的cache),另一部分用來存儲一些常用的數據(也就是一般而言的資源),這些資源對個人電腦而言都從磁盤讀取(一些工作站可以通過其餘I/O設備如光盤塔之類的輸入),所以內存也與磁盤有相當多的通訊。當然這只是功能上的劃分,本身這些數據並沒有明確的界限。
  內存一直在扮演一箇中間人的角色,調和兩個矛盾。一個是CPU高速運算需要的緩存不夠。所以基本上最常用的數據,就放在速度快的cache上,不過由於CPU的體積和集成度的限制,集成不了足夠的cache,所以用內存"濫竽充數",隨着內存體積倍增,cache一級一級加大,如今這部分功能對性能的影響可能越來越不明顯了。另一個矛盾是磁盤的隨機數據讀寫效率低下,如今磁盤的連續數據傳輸能力越來越強大,不過由於物理結構的限制,隨機數據讀寫一直是軟肋。在這方面,如今市面上最好的磁盤甚至不如一個地攤上30元買來的普通U盤。這也就是爲什麼windows會支持用U盤、TF、CF卡來做readyboost加速補充內存而不是用磁盤。而內存無論是隨機數據讀寫還是連續數據傳輸,速度都數十倍於磁盤,由於CPU運算可能需要大量的隨機數據輸入,不可能依賴速度蹩腳的磁盤,所以內存必不可少的在這裏做一個代理人的角色。首先將磁盤上的數據提前輸入內存,再由內存遞交給cpu,由於cpu輸出的數據只要輸出到內存就可以呈現給用戶,所以避免了磁盤性能低下造成的糟糕的用戶體驗。
  廢話說完,回到正題殺軟上來。一般我們所指的殺軟的用戶體驗,當然是在監控狀態下的體驗,估計也沒人一天24小時掃描着磁盤吧。那麼看看這時候殺軟在如何利用硬件資源。首先,當我們讀取或者寫入文件的時候,殺軟會提前一點預讀取我們可能用到的文件,這個時候顯然是把數據讀入內存了。同時既然要監控,肯定要特徵碼吧,於是特徵庫也被加載進內存,這個時候內存佔用基本上是飆升的狀態。然後,CPU開機根據特徵庫比對文件,CPU佔用也飆升。如果還開啓了啓發,那麼還要加載虛擬機引擎到內存,CPU還要模擬出一個簡單的系統運行過程,這時候只有一個結果--卡~(暫時命名爲卡機1)尤其對於單核的CPU來說,瞬間的90%以上佔用基本上是肯定的。不過由於用戶不可能一次調用大量文件,所以這個過程很快結束,如果過程非常短暫,用戶就不會覺得卡機。至於虛擬機引擎和特徵庫佔用的那些內存是否馬上回收,各個殺軟的內存管理機制不同,結果也就不同了。如果常駐內存,那麼顯然應對連續的文件操作時候,不需要反覆加載這兩個模塊,效率是很高的,如果立刻回收,則下個監控週期(以開始監控掃描到回覆靜息狀態爲一個週期)要重複加載,效率十分低下。
  說了這麼多是不是發現內存佔用和卡機無關?也不是,關鍵點還沒有出來。如果一個殺軟佔用內存居高不下,而系統可用的物理內存十分有限時,會出現一個不正常現象--空閒內存欠載。簡單說就是內存滿了,再也放不下數據了。此時windows不得不調用虛擬內存來模擬所有的內存分頁,也就是用磁盤代替一部分內存的功能。當然CPU是不能直接讀取磁盤上的分頁文件的,所以工作過程應該是磁盤分頁-->物理內存-->CPU-->物理內存-->磁盤分頁,而內存充足時的工作流程是物理內存-->CPU-->物理內存。很明顯磁盤分頁到內存之間的數據讀寫是極大的瓶頸,尤其是隨機讀寫能力極低的硬盤(如果採用了readyboost加速的閃存,磁盤分頁的隨機讀寫性能會上升,但是CPU佔用會加大)。此時進行任何操作都會非常卡(命名爲卡機2),而且CPU佔用還不高(磁盤操作不依賴CPU,除非你還在用PIO模式,囧)。不過大部分廠商肯定不會不考慮到這個,所以基本上會把一部分特徵庫駐留,另一部分回收掉,以此平衡內存佔用和性能。
  隨着內存的總量逐漸加大,很多殺軟都開始使用"智能"的動態內存分配,根據現有的內存狀況,調整自己的內存佔用。但是在小內存系統上這個技術效果不佳。首先由於內存不足,動態分配肯定是會及時回收特徵庫和虛擬引擎,也就是說每個監控週期都在重複加載這些數據,所以卡機1的時間會延長,不明顯的卡機變成明顯的卡機。
  所以結論很明顯
  大內存機器的殺軟卡機,基本上都是卡機1
  小內存的卡機如果是動態分配很優秀的殺軟,是卡機1,如果是佔用內存的大戶,基本上是卡機2
  大內存機器顯然很適合特徵庫巨大,啓發一般般的殺軟
  小內存機器最好還是以啓發爲主,用CPU彌補內存的不足。如果兩個都不行,囧,你最好用回老版本殺軟或者更新機器
  PS:一般卡機1叫做卡U,卡機2就是我們常說的卡機
  PS2:大小內存的界定,以今時今日的殺軟爲標準,應該在512MB
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章