討論android瀏覽器關於記憶體占用的利弊

2021-07-02 19:17:26 字數 2007 閱讀 9178

在做測試的時候,有對apk進行的記憶體洩漏的測試。雖然,每個手機瀏覽器廠家在軟體發布的時候,都已經而且肯定的對自己的軟體做了記憶體洩漏的測試,當然,這是他們的命根,它們還會想繼續的對軟體占用的記憶體做各種技術上的優化,以保證他們的軟體的記憶體不會在技術上發生洩漏,導致軟體甚至是系統的崩潰。

1、對新建標籤做控制,就是對標籤的數量做一定的限制,保證記憶體占用在一定的可以接受的範圍之內,而且不會因為占用太多的系統記憶體導致由於系統卡頓而造成的軟體卡頓。為什麼會對標籤數量做限制呢?究其原因,會在第二點分析上給出。

2、因為快取而占用記憶體,可能這是對第一點標籤數量控制給出的答案吧。因為大家都知道,移動裝置的流量在中國來說,是一筆比較昂貴的費用,我們如何花更少的流量,來做更多的事情內,答案就是快取!是的,國產手機瀏覽器的宣傳中,我們可以看到「快、輕、穩、省」這幾個常用的宣傳關鍵字,那麼逐個來分析吧:快,要達到這個目的,首先要網速夠快,第二是載入的速度要夠快,怎麼做到呢?首先,在使用者瀏覽之前,提前載入要瀏覽的內容,在瀏覽的時候,只要做呈現的動作就可以了,而不用再去請求,這包括整個**資料的提前載入,回退動作的預先快取。而無法預期的是網速,當然,在純軟體技術上,這個可以去規避。當然,在載入的過程中,也會因為技術演算法的原因,各有不同,不過零點幾秒的差距,一般人是不會體驗出來的。輕呢?那又說的是啥,輕就是軟體能快速響應使用者的操作,這個是整個軟體體現出來的使用者體驗,跟軟體的整體構建,軟體編碼和操作邏輯有很大的關係,具體的分析這裡不會做出。穩的特點當然是不會崩潰,最後的省,也幾乎是和快是一樣的東西,那就是快取。如何能快速快取,當然,每個程式在執行的時候,為了達到快速快取的目的,一般都會將資料放置在記憶體當中,用來提供給下個動作的引用。宗上所述,我們就可以知道,國產瀏覽器,在快取上,是做了很多的,也就是說,當你開啟乙個瀏覽器進行使用的時候,它會占用你不少記憶體。這也就是,我們的標籤開得越多,就越卡的原因,幾乎和在windows上是乙個道理。

3、記憶體釋放,記憶體釋放這個動作似乎是android虛擬機器統一調配的,國產瀏覽器在測試時候的表現,都不會去釋放記憶體,當你使用home鍵跳回到桌面的時候,為什麼這樣呢?當然是為了我們再次進入的時候,還在退出時候的畫面,為了這個快和省的表現,犧牲了很大一部分的記憶體空間。

改進:是的,每乙個瀏覽器提供者,它最大限度的考慮了使用者的體驗,而且也幫使用者的錢包做了最好的打算,但是,當使用者使用多款這樣的軟體進行同時操作的時候,我們會遇到什麼樣的問題呢?那就是把系統的記憶體耗光,不過,系統還是會在某乙個斷點去幫我們自動去判斷哪個程序是不需要的,而及時釋放它的記憶體。不過,這些軟體需求的制定者們,都只考慮了自身的情況,它們假設使用者只有一款瀏覽器,在操作瀏覽器的時候,只是操作瀏覽器。不過,在android這個自由的系統裡,任何操作都是合法的,因為自由。

那麼,對比下ios和chrome,我們又會發現什麼,那就是,在ios或者chrome上,你可以任意開多少個標籤都是沒有關係的,只要你想,因為它們都為其他的軟體做了提前的預想,那就是只要不在當前頁面進行瀏覽,就會馬上**記憶體,保證資源合理利用最大化。chrome上會有這樣的表現和承諾,那是android給系統做出的讓步,當然,這個讓步是在iphone上借鑑而來的技術改進。不過這種機制,又給我們帶來了幾個問題,如果你的網速不夠快,如果你的載入不夠快,那麼使用者體驗是不好的,而且,對流量的消耗也是巨大的,在2g網路上,我們就可以完全的體會到這一點。

我想:看了這麼多,也想了這麼多,為什麼要做標籤限制?那是因為記憶體占用。為什麼馬上釋放記憶體,而消耗流量呢?那是因為為了保證系統資源的合理,當然,也能省電,不過我們的流量呢?

其實,如果我們合併了這兩個想法,那會是乙個什麼樣的結果呢?

那就是標籤可以任意開,但是,在增加標籤的時候,保留增開標籤的快取,在回退和前進的時候不用再次請求,此時銷毀其它的標籤快取。

我想,這也是一種權衡的做法吧,當使用者瀏覽在乙個頁面瀏覽乙個訊息、新聞、**的時候,快進快退的快取是必須的,而且,我們不會無休止的增進自己的鏈結,所以,這個方式可以稱為一種折中的表現,當然,這也不會占用太多的記憶體。是的,當你開啟第二個標籤的時候,是否希望第乙個標籤的東西被保留呢?還是只是暫時性或者慣性的開啟第二個標籤呢?答案多數傾向於第一種,不過這個時候清空你的快取,怕是會對你的流量再帶來一次不小的io,不過這種極客的思想,可以讓系統更加流暢和穩定。這也是乙個不小的問題。有感而發,記錄下此刻的思想。

關於瀏覽器

1 瀏覽器廠商識別號 moz 相容火狐ff android webkit 相容safari chrome o 相容opera ms 相容ie 2 瀏覽器同源策略 第乙個限制 不能通過ajax的方法去請求不同源的文件 第二個限制 瀏覽器中不同域的框架之間是不能進行js互動操作的。document.do...

關於瀏覽器相容

1html相容 新型的網際網路產品通常對瀏覽器版本沒什麼特殊限制,可以採用最新的h5開發 比如語義化標籤section,header,footer 表單中簡單的驗證也可以用type email num telphone 傳統行業通常電腦比較老,用的瀏覽器版本低,所以不能盡量避免用h5 2css相容 ...

關於瀏覽器相容

對於初入職場小白的我,前端在工作中不可避免的要與各種瀏覽器打交道,下面是我在工作中遇到的問題總結 做個記錄 1.關於flex布局 flex布局的強大毋庸置疑,不論是pc端還是手機移動端對它的支援都非常安美,但是 但是來了,說明還是有限制滴!flex對於其他核心的瀏覽器貌似還可以,偏偏對ie情有獨鍾 ...