都是13萬能買到 這兩款大眾轎車誰更好

乘坐感受速騰雖然用上了后獨立懸架,但是舒適性方面還是有所欠缺,關鍵是當顛簸比較多的時候,會發現懸架有點處理不過來,餘震較多。但是有一點比較好,速騰的底盤滲進車廂內的細碎震動不多。另外有一點值得表揚的就是,後排空間較大且座墊的長度足夠。

前言速騰和朗逸可以說是大眾家族中的兩張銷量王牌,那麼在14萬左右想買這兩者中的一輛,該如何來選呢,下面編者我就來對比一下。

一汽-大眾-速騰

2017款 230TSI 自動舒適型

指導價:16.08萬

優惠幅度:3萬元左右(僅供參考)

上汽大眾-朗逸

2015款 230TSI DSG舒適版

指導價:14.69萬

優惠幅度:1.3萬左右(僅供參考)

駕駛感受

兩輛車的動力總成都一樣,均為1.4T發動機+7速DSG變速箱,最大輸出131馬力和225牛米。略有區別的是最大扭矩轉速,朗逸在1400轉便爆發,而速騰要到1500轉,不過兩者都在3500轉以後開始衰減。

懸架的選用上兩者也有很大差別,速騰后懸架採用的是多連桿獨立懸架,而朗逸用的是扭力梁式非獨立懸架。儘管如此,一切還是要從實際表現出發。

速騰的發動機艙

速騰的動力還是很充足的,無論平時超車,還是高速上開,都不會覺得車子有乏力的情況。變速箱的換擋動作也很平順,不會給駕駛員帶來什麼滋擾。然而,懸架總體來說還是偏軟,高速過彎時的側傾會比較大。轉向則略微有點重,特別是在不停挪車時,轉向的力度有點讓人受不了。

朗逸的發動機艙

朗逸的駕駛感受其實也和速騰大同小異,1.4T的動力隨傳隨到,不拖泥帶水。懸架抑制側傾的能力依舊有限,不算很出色。轉向上會比速騰來得略輕一點點。

乘坐感受

速騰雖然用上了后獨立懸架,但是舒適性方面還是有所欠缺,關鍵是當顛簸比較多的時候,會發現懸架有點處理不過來,餘震較多。但是有一點比較好,速騰的底盤滲進車廂內的細碎震動不多。另外有一點值得表揚的就是,後排空間較大且座墊的長度足夠。

朗逸的表現就沒有速騰那麼好了,首先座墊偏短,乘客的大腿大部分位置得不到有效承托。不過,座椅靠背角度較斜,坐進去感覺還是挺放鬆。其次就是,從底盤傳入車廂內的細碎震動較多,過大坑時會顯得較為單薄,幸好在過小顛簸時懂得如何去以柔克剛。

配置對比

這個環節可以說是兩者差別最大的,因為速騰的優惠幅度更高,所以配置會更為豐富。不僅多了無鑰匙啟動與進入,還多了不少配置,詳情可看下錶。

油耗對比

由於動力總成完全一致,且車身尺寸差距不大,所以兩者的油耗很相近。速騰的百公里綜合油耗為7.3L,而朗逸則為7.2L。

編者總結:

其實,速騰與朗逸這兩台車的調性是很相似的,都是偏居家的風格,而速騰在舒適性與配置上會優於朗逸。但是,每次看到速騰,我腦海中都閃現出一句歌詞“有多少愛可以重來”,曾經的速騰斷軸門讓大家都傷透了心。儘管現在速騰已更換了后獨立懸架,但是心中的芥蒂是否就此放下呢?如果已經放下了,那速騰確是一款適合家用的車。如若依舊介懷,就不必買輛車讓自己提心吊膽。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※想知道最厲害的網頁設計公司"嚨底家"!

※別再煩惱如何寫文案,掌握八大原則!

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※回頭車貨運收費標準

台中搬家公司費用怎麼算?

單獨囚禁在水池2年 日本311倖存海豚抑鬱離世

摘錄自2020年4月15日鏡週刊報導

國際動保組織「海豚計畫」(Dolphin project)報導指出,日本寬吻海豚「Honey」於2005年在日本太地町被捕獲,自此生活在千葉線犬吠埼海洋公園僅80平方公尺大的水池中,與另一隻海豚、46隻企鵝及數百種魚類一起生活。

311大地震後面臨觀光衰退和建築物老舊,2008年11月犬吠埼海洋公園被爆出營運困難負債,正尋找買家,去年初終於轉賣,但如今整個園區卻呈現廢棄狀態,也沒有遊客造訪,僅安排員工前來餵食。另一隻海豚於2017年死亡,「Honey」自此單獨每天在這廢棄的水池中游來游去,對習性群居的海豚而言,這無疑是極大的折磨。

動保組織「海豚計畫」曾試圖聯繫買下海豚「Honey」,盼為牠找到合適的居所安享晚年,但為時已晚,3月初「Honey」狀況已經不太好,3月29日牠因阻塞性腸炎,死在待了泰半生的水池。

國際新聞
日本
核災
展示動物
動物福利

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

※別再煩惱如何寫文案,掌握八大原則!

殼牌石油拚減碳 誓言最遲2050年達零排放

摘錄自2020年4月16日聯合報報導

國際石油天然氣巨擘荷蘭皇家殼牌集團(Royal Dutch Shell)今(16日)誓言,在2050年前要達成「碳中和」(Carbon Neutral)目標,和競爭對手英國石油公司(BP)的承諾一樣。

法新社報導,殼牌執行長范柏登(Ben vanBeurden)在聲明中表示,社會對於氣候變遷的期許瞬息萬變,殼牌需要再進一步自我要求,計畫最晚在2050年成為零排放的能源企業。殼牌將在2050年前把自家能源產品的「淨碳足跡」減少約65%;在2030年減少30%。

溫室氣體
能源議題
全球變遷
氣候變遷
能源轉型
國際新聞
殼牌
減碳宣言
零排放
石油

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

※推薦評價好的iphone維修中心

網頁設計最專業,超強功能平台可客製化

※別再煩惱如何寫文案,掌握八大原則!

日本大鯢數量急減 雜交問題嚴重 水族館推大鯢布偶提升國民關注

文:宋瑞文

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

※教你寫出一流的銷售文案?

※超省錢租車方案

※回頭車貨運收費標準

太空可見!威尼斯疫情前後巨大變化 衛星對比照曝光

摘錄自2020年4月17日自由時報報導

武漢肺炎疫情持續蔓延,各國經濟無不受到影響,但人類社會活動暫停對地球的正面影響也已明顯出現,歐洲太空總署近日公布義大利水都威尼斯的衛星空拍對比照,只見去年同期與今年同期相比,當地水質狀況截然不同。

根據《CNN》報導,歐洲太空總署(European Space Agency)近日公布由Sentinel-2衛星拍攝的威尼斯空拍照,只見當地去年4月19日時水質十分混濁,鄰近水域幾乎都是黃澄澄一片泥沙,並有大量船隻在運行;作為對比,今年4月13日該水域已清澈見底。

威尼斯衛星空拍對比照。照片來源:
歐洲太空總署( CC BY-SA 3.0 IGO)


土地水文
土地利用
生物多樣性
國際新聞
義大利
威尼斯
水質
動物與大環境變遷
武漢肺炎
水文

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※Google地圖已可更新顯示潭子電動車充電站設置地點!!

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※別再煩惱如何寫文案,掌握八大原則!

網頁設計最專業,超強功能平台可客製化

※回頭車貨運收費標準

加州紅潮「藍影浮動」 夜光藻美麗的背後隱藏殺機

摘錄自2020年04月19日ETtoday新聞雲美國報導

佛羅里達西南部海域自2017年10月開始出現紅潮,微小藻類引起這種有害的藻華現象(algal booms),不同的藻類造成不同顏色。根據《CNN》報導,這位遊客在加州的紐波特海灘(Newport Beach)目睹了紅潮,海水中的「夜光藻」讓海水呈現「藍色螢光」。如果海岸一片平靜倒看不出異常,但隨著潮水拍岸,海中的藻華也隨之翻湧,浮現魅惑的亮藍色,在黑夜中宛如海中銀河。

紅潮讓許多遊客趨之若鶩,離島馬祖也有如此美景可欣賞。然而美麗的背後卻伴隨著死亡,根據《國家地理頻道》報導,佛羅里達南部的海灘被成千海洋生物的屍體覆蓋,各種魚類、螃蟹、海牛、海豚、海龜等生物,因為吃下大量海藻而中毒。

而研究指出,人為排放的養分是造成藻華數目急遽上升的原因,而大型風暴通過的地區也可能出現紅潮異常的情況。然而目前對於紅潮是「人為」還是「天然」造成仍存在爭議。

全球變遷
氣候變遷
國際新聞
加州
紅潮
藻華現象

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

※教你寫出一流的銷售文案?

※回頭車貨運收費標準

※別再煩惱如何寫文案,掌握八大原則!

鋁複合材料能存氣體 氫氣車電池新招

摘錄自2020年4月19日聯合新聞網報導

美國西北大學法爾哈教授所帶領的團隊,最近成功研發一種以鋁做為主元素的複合材料:NU-1501,有望成為氫氣車大量儲存氣體的新選項。該材料在結構上與海綿相似,擁有許多小孔可儲存氣體,NU-1501可透過壓力的不同來儲存或釋放氣體。比起現有的氣體儲存槽更加安全、輕量與便宜,若加以應用,有極大潛力。

為了降低交通運輸業所造成的碳排放,可達到零碳排的氫氣車近年來成為重要的研究主軸。氫氣車主要透過氫和氧的化學反應來產生電,過程並不會產生任何二氧化碳。但因為氫氣十分易燃且體積龐大,在未加壓的狀況下,跑100公里需要11,000公升的氫氣。

目前業界主要採取將氫氣加壓到700巴,比汽車胎壓還要高出300倍,除了有安全疑慮外,特別設計過的氣體儲存槽也相當笨重與昂貴。而NU-1051除了能攜帶更多的氫氣外,也只需要比較低的壓力,因此十分具有發展潛力。

能源議題
環境經濟
能源轉型
循環經濟
國際新聞
氫氣車
海綿

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※想知道最厲害的網頁設計公司"嚨底家"!

※別再煩惱如何寫文案,掌握八大原則!

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※回頭車貨運收費標準

台中搬家公司費用怎麼算?

微服務海量日誌監控平台

前面幾章蜻蜓點水的介紹了elasticsearch、apm相關的內容。本片主要介紹怎麼使用ELK Stack幫助我們打造一個支撐起日產TB級的日誌監控系統

背景

在企業級的微服務環境中,跑着成百上千個服務都算是比較小的規模了。在生產環境上,日誌扮演着很重要的角色,排查異常需要日誌,性能優化需要日誌,業務排查需要業務等等。然而在生產上跑着成百上千個服務,每個服務都只會簡單的本地化存儲,當需要日誌協助排查問題時,很難找到日誌所在的節點。也很難挖掘業務日誌的數據價值。那麼將日誌統一輸出到一個地方集中管理,然後將日誌處理化,把結果輸出成運維、研發可用的數據是解決日誌管理、協助運維的可行方案,也是企業迫切解決日誌的需求。

我們的解決方案

通過上面的需求我們推出了日誌監控系統。

  • 日誌統一收集、過濾清洗。
  • 生成可視化界面、監控,告警,日誌搜索。

功能流程概覽

  • 在每個服務節點上埋點,實時採集相關日誌。
  • 統一日誌收集服務、過濾、清洗日誌後生成可視化界面、告警功能。

我們的架構

  1. 日誌文件採集端我們使用filebeat,運維通過我們的後台管理界面化配置,每個機器對應一個filebeat,每個filebeat日誌對應的topic可以是一對一、多對一,根據日常的日誌量配置不同的策略。除了採集業務服務日誌外,我們還收集了mysql的慢查詢日誌和錯誤日誌,還有別的第三方服務日誌,如:nginx等。最後結合我們的自動化發布平台,自動發布並啟動每一個filebeat進程。
  2. 調用棧、鏈路、進程監控指標我們使用的代理方式:Elastic APM,這樣對於業務側的程序無需任何改動。對於已經在運營中的業務系統來說,為了加入監控而需要改動代碼,那是不可取的,也是無法接受的。Elastic APM可以幫我們收集http接口的調用鏈路、內部方法調用棧、使用的sql、進程的cpu、內存使用指標等。可能有人會有疑問,用了Elastic APM,其它日誌基本都可以不用採集了。還要用filebeat幹嘛?是的,Elastic APM採集的信息確實能幫我們定位80%以上的問題,但是它不是所有的語言都支持的比如:C。其二、它無法幫你採集你想要的非error日誌和所謂的關鍵日誌,比如:某個接口調用時出了錯,你想看出錯時間點的前後日誌;還有打印業務相關方便做分析的日誌。其三、自定義的業務異常,該異常屬於非系統異常,屬於業務範疇,APM會把這類異常當成系統異常上報,如果你後面對系統異常做告警,那這些異常將會幹擾告警的準確度,你也不能去過濾業務異常,因為自定義的業務異常種類也不少。
  3. 同時我們對agent進行了二開。採集更詳細的gc、堆棧、內存、線程信息。
  4. 服務器採集我們採用普羅米修斯。
  5. 由於我們是saas服務化,服務N多,很多的服務日誌做不到統一規範化,這也跟歷史遺留問題有關,一個與業務系統無關的系統去間接或直接地去對接已有的業務系統,為了適配自己而讓其更改代碼,那是推不動的。牛逼的設計是讓自己去兼容別人,把對方當成攻擊自己的對象。很多日誌是沒有意義的,比如:開發過程中為了方便排查跟蹤問題,在if else里打印只是有標誌性的日誌,代表是走了if代碼塊還是else代碼塊。甚至有些服務還打印着debug級別的日誌。在成本、資源的有限條件下,所有所有的日誌是不現實的,即使資源允許,一年下來將是一比很大的開銷。所以我們採用了過濾、清洗、動態調整日誌優先級採集等方案。首先把日誌全量採集到kafka集群中,設定一個很短的有效期。我們目前設置的是一個小時,一個小時的數據量,我們的資源暫時還能接受。
  6. Log Streams是我們的日誌過濾、清洗的流處理服務。為什麼還要ETL過濾器呢?因為我們的日誌服務資源有限,但不對啊,原來的日誌分散在各各服務的本地存儲介質上也是需要資源的哈。現在我們也只是彙集而已哈,收集上來后,原來在各服務上的資源就可以釋放掉日誌佔用的部分資源了呀。沒錯,這樣算確實是把原來在各服務上的資源化分到了日誌服務資源上來而已,並沒有增加資源。不過這隻是理論上的,在線上的服務,資源擴大容易,收縮就沒那麼容易了,實施起來極其困難。所以短時間內是不可能在各服務上使用的日誌資源化分到日誌服務上來的。這樣的話,日誌服務的資源就是當前所有服務日誌使用資源的量。隨存儲的時間越長,資源消耗越大。如果解決一個非業務或非解決不可的問題,在短時間內需要投入的成本大於解決當前問題所帶來收益的話,我想,在資金有限的情況下,沒有哪個領導、公司願意採納的方案。所以從成本上考慮,我們在Log Streams服務引入了過濾器,過濾沒有價值的日誌數據,從而減少了日誌服務使用的資源成本。技術我們採用Kafka Streams作為ETL流處理。通過界面化配置實現動態過濾清洗的規則:
  • 界面化配置日誌採集。默認error級別的日誌全量採集
  • 以錯誤時間點為中心,在流處理中開窗,輻射上下可配的N時間點採集非error級別日誌,默認只採info級別
  • 每個服務可配100個關鍵日誌,默認關鍵日誌全量採集
  • 在慢sql的基礎上,按業務分類配置不同的耗時再次過濾
  • 按業務需求實時統計業務sql,比如:高峰期階段,統計一小時內同類業務sql的查詢頻率。可為dba提供優化數據庫的依據,如按查詢的sql創建索引
  • 高峰時段按業務類型的權重指標、日誌等級指標、每個服務在一個時段內日誌最大限制量指標、時間段指標等動態清洗過濾日誌 
  • 根據不同的時間段動態收縮時間窗口
  • 日誌索引生成規則:按服務生成的日誌文件規則生成對應的index,比如:某個服務日誌分為:debug、info、error、xx_keyword,那麼生成的索引也是debug、info、error、xx_keyword加日期作後綴。這樣做的目的是為研發以原習慣性地去使用日誌

    7. 可視化界面我們主要使用grafana,它支持的眾多數據源中,其中就有普羅米修斯和elasticsearch,與普羅米修斯可謂是無縫對接。而kibana我們主要用於apm的可視分析

日誌可視化

【版權聲明】

本文版權歸作者(深圳伊人網網絡有限公司)和博客園共有,歡迎轉載,但未經作者同意必須在文章頁面給出原文鏈接,否則保留追究法律責任的權利。如您有任何商業合作或者授權方面的協商,請給我留言:siqing0822@163.com

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

※別再煩惱如何寫文案,掌握八大原則!

深入理解JVM(③)判斷對象是否還健在?

前言

因為Java對象主要存放在Java堆里,所以垃圾收集器(Garbage Collection)在對Java堆進行回收前,第一件事情就是要確定這些對象之中哪些還“存活”着,哪些已經“死去”(不被引用了)。

判斷對象是否健在的算法

1.引用計數算法

引用計數算法,很容易理解,在對象中添加一個引用計數器,每有一個地方引用它時,計數器值就加一;當引用失效是,計數器值就減一;任何時刻計數器為零的對象就是不可以能再被使用的對象
引用計數算法的原理簡單,判定效率也很高。市面上也確實有一些技術使用的此類算法來判定對象是否存活,像ActionScript 3 的FlashPlayer、Python語言等。但是在主流的Java虛擬機裏面都沒有選用引用計算法來管理內存,主要是使用此算法時,必須要配合大量的額外處理才能保證正確的工作,例如要解決對象之間的相互循環引用的問題。

public class OneTest {

    public Object oneTest = null;

    private static final int _1MB = 1024 * 1024;

    private byte[] bigSize = new byte[256 * _1MB];


    /**
     * 這個成員屬性的唯一意義就是占點內存,以便能在GC日誌中看清楚是否有回收過。
     */
    @Test
    public void testGC(){

        OneTest test1 = new OneTest();
        OneTest test2 = new OneTest();

        test1.oneTest = test2;
        test2.oneTest = test1;

        test1 = null;
        test2 = null;

        // 假設在這行發生GC,test1和test2是否能被回收?
        System.gc();

    }

}

分析代碼,test1和test2對象都被設置成了null,在後面發生GC的時候,如果按照引用計數算法,這兩個對象雖然都被設置成了null,但是test1引用了test2,test2又引用了test1,所以這兩個對象的引用計數值都不為0,所以都不會被回收,但是真正的實際運行結果是,這兩個對象都被回收了,這也說明HotSpot虛擬機並不是用引用計數法來進行的內存管理。

2. 可達性分析算法

當前主流的商用程序語言(Java、C#等),都是通過可達性分析(Reachability Analysis)算法來判斷對象是否存活的。這個算法的基本思路就是通過一一系列稱為“GC Roots” 的根對象作為起始節點集,從這些節點開始根據引用關係向下搜索,搜索走過的的路徑稱為“引用鏈”(Reference Chain),如果某個對象到GC Roots 間沒有任何引用鏈相連,或者從GC Roots 到這個對象不可達時,則證明此對象是不可能再被使用的。
如下圖,object10、object11、object12這三個對象,雖然互相有關聯,但是它們到GC Roots是不可達的,因此它們會被判定為可回收的對象。

在Java程序中,固定可作為GC Roots 的對象包括以下幾種:

  • 在虛擬機棧(棧幀中的本地變量表)中引用的對象,譬如各個現場被調用的方法堆棧中使用到的參數、局部變量、臨時變量等。
  • 在方法區中類靜態屬性引用的對象,譬如Java類的引用類型靜態變量。
  • 在方法區中常量引用的對象,譬如字符串常量池(String Table)里的引用。
  • 在本地方法棧中JNI(即通常所說的Native方法)引用的對象。
  • Java虛擬機內部的引用,如基本數據類型對應的Class對象,一些常駐的異常對象(NullPointException、OutOfMemoryError)等,還有系統類加載器。
  • 所有被同步鎖(synchronized關鍵字)持有的對象。
  • 反映Java虛擬機內部情況的JMXBean、JVMTI中註冊的回調、本地代碼緩存等。
    除了這些固定的GC Roots集合以外,根據垃圾收集器以及當前回收的呢村區域不同,還會有其他對象“臨時性”的加入,如果只針對Java堆中某一塊兒區域發起垃圾收集時(例如只針對年輕代的垃圾收集),必須考慮到當前區域內的對象是否有被其他區域的對象所引用,這個時候就需要把這些關聯區域的對象一併加入GC Roots集合中,來保證可達性分析的正確性。

重申引用

無論是通過引用計數算法判斷對象的引用數量,還是通過可達性分析算法判斷對象是否引用鏈可達,判斷對象是否存活都和“引用”離不開關係。在JDK1.2之前,Java里對引用的概念是:如果reference類型的數據中存儲的數值代表的是另外一塊兒內存的地址,就稱該reference數據是代表某塊內存、某個對象的引用。
在JDK1.2版之後,Java對引用的概念進行了擴充,將引用分為強引用(Strongly Reference)、軟引用(Soft Reference)、弱引用(Weak Reference)、虛引用(Phantom Reference)4種,這4種引用強度依次逐漸減弱。

  • 強引用是最傳統的“引用”的定義,指引用複製,即類似
Object obj = new Object()

這種引用關係。無論在任何情況下,只要強引用關係還存在,垃圾收集器就不會回收掉被引用的對象。

  • 軟引用是用來描述一些還有用,但非必須的對象。在系統發生內存溢出前,會先對軟引用對象進行第二次回收,如果回收后還沒有足夠的內存,才會拋出內存溢出的異常。
  • 弱引用也是用來描述那些非必須的對象,但是它的強度比軟引用更弱一些,弱引用的對象,只能生存到下一次垃圾收集發生為止。當垃圾收集器開始工作,無論當前內存是否足夠,都會回收掉只被弱引用關聯的對象。
  • 虛引用也稱為“幽靈引用”或“幻影引用”,它是最弱的一種引用關係。為一個對象設置虛引用關聯的唯一目的只是為了能在這個對象被收集器回收時收到一個系統通知。

判斷對象是生是死的過程

即使在可達性分析算法中,判斷為不可達的對象,也不是“非死不可”的,要真正宣告一個對象死亡,至少要經歷兩次標記過程:

  • 如果第一次對象在進行可達性分析后發現與GC Roots 不可達,將進行第一次標記。
  • 隨後對此對象進行一次是否有必要執行finalize()方法進行篩選,假如對象沒有覆蓋finalize()方法,或者finalize()方法已經被虛擬機調用過,都視為“沒有必要執行”。
    如果對象被判定有必要執行finalize()方法,會將對象放置在一個名為F-Queue的隊列中,並在由一條由虛擬機自動建立的、低調度的線程區執行它們的finalize()方法。但並不承諾一定會等待它們運行結束。

需要注意的是:任何一個對象的finalize()方法都只會被系統自動調用一次,如果對象面臨第二次回收,它的finalize()方法不會被再次執行。
還有一點就是Java官方已經明確聲明不推薦手動調用finalize()方法了,因為它的運行代價高昂,不確定性大,無法保證各個對象的調用順序,並且finanlize()能做的所有工作,使用try-finally或其他方式都可以做的更好、更及時。

回收方法區

方法區垃圾收集的“性價比”通常比較低,並且方法區回收也有過於苛刻的判定條件。
方法區的垃圾收集主要回收兩部分內容:廢棄的常量不再使用的類型,回收廢棄常量時,如果當前系統沒有一個常量的值是當前常量值,且虛擬機中也沒有其他地方引用這個常量。如果這個時候發生垃圾回收,常量就會被系統清理出常量池。
判定一個類型是否屬於“不再使用的類”的條件就比較苛刻了,要同時滿足如下三個條件:

  • 該類所有的實例都已經被回收,也就是Java堆中不存在該類及其任何派生子類的實例。
  • 加載該類的類加載器已經被回收,這個條件除非是經過精心設計的可替換類加載器的場景,如OSGi、JSP的沖加載等,否則通常很難達成的。
  • 該類對應的java.lang.Class對象沒有在任何地方被引用,無法在任何地方通過反射訪問該類的方法。

同時滿足了上述的三個條件后,也只是被允許進行回收了,關於是否要對類型進行回收還要對虛擬機進行一系列的參數設置,這裏就不贅述了,感興趣的可以自己去查詢。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

※推薦評價好的iphone維修中心

網頁設計最專業,超強功能平台可客製化

※別再煩惱如何寫文案,掌握八大原則!

如何監控 Linux 服務器狀態?

Linux 服務器我們天天打交道,特別是 Linux 工程師更是如此。為了保證服務器的安全與性能,我們經常需要監控服務器的一些狀態,以保證工作能順利開展。

本文介紹的幾個命令,不僅僅適用於服務器監控,也適用於我們日常情況下的開發。

1. watch

watch 命令我們的使用頻率很高,它的基本作用是,按照指定頻率重複執行某一條指令。使用這個命令,我們可以重複調用一些命令來達到監控服務器的作用。

默認情況下,watch 命令的執行周期是 2 秒,但我們可以使用 -n 選項來指定運行頻率,比如我們想要每隔 5 秒執行 date 命令,可以這麼執行:

$ watch -n 5 date

一台服務器肯定有多人在用,特別是本部門的小夥伴。對於這些小夥伴有沒渾水摸魚,我們可以使用一些命令來監控他們。

我們可以每隔 10 秒執行 who 命令,來看看都有誰在使用服務器。

$ watch -n 10 who
Every 10.0s: who                             butterfly: Tue Jan 23 16:02:03 2019

shs      :0           2019-01-23 09:45 (:0)
dory     pts/0        2019-01-23 15:50 (192.168.0.5)
alvin     pts/1        2019-01-23 16:01 (192.168.0.15)
shark    pts/3        2019-01-23 11:11 (192.168.0.27)

如果發現系統運行很慢,我們可以調用 uptime 命令來查看系統平均負載情況。

$ watch uptime
Every 2.0s: uptime                           butterfly: Tue Jan 23 16:25:48 2019

 16:25:48 up 22 days,  4:38,  3 users,  load average: 1.15, 0.89, 1.02

一些關鍵的進程肯定不能掛,否則可能會影響到業務開展,所以我們可以重複統計服務器中的所有進程數量。

$ watch -n 5 'ps -ef | wc -l'
Every 5.0s: ps -ef | wc -l                   butterfly: Tue Jan 23 16:11:54 2019

245

想動態知道服務器內存使用情況,可以重複執行 free 命令。

$ watch -n 5 free -m
Every 5.0s: free -m                          butterfly: Tue Jan 23 16:34:09 2019

              total        used        free      shared  buff/cache   available
Mem:           5959         776        3276          12        1906        4878
Swap:          2047           0        2047

當然不僅僅是這些,我們還可以重複調用很多命令來對服務器一些關鍵參數進行監控,

2. top

使用 top 命令我們可以知道系統的很多關鍵參數,而且是動態更新的。默認情況下,top 監控的是系統的整體狀態,如果我們只想知道某個人的使用情況,可以使用 -u 選項來指定這個人。

$ top -u alvin
top - 16:14:33 up 2 days,  4:27,  3 users,  load average: 0.00, 0.01, 0.02
Tasks: 199 total,   1 running, 198 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.2 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   5959.4 total,   3277.3 free,    776.4 used,   1905.8 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   4878.4 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
23026 alvin      20   0   46340   7820   6504 S   0.0   0.1   0:00.05 systemd
23033 alvin      20   0  149660   3140     72 S   0.0   0.1   0:00.00 (sd-pam)
23125 alvin      20   0   63396   5100   4092 S   0.0   0.1   0:00.00 sshd
23128 alvin      20   0   16836   5636   4284 S   0.0   0.1   0:00.03 zsh

在這個結果里,你不僅僅可以看到 alvin 這個用戶運行的所有的進程數,也可以看到每個進程所消耗的系統資源(CPU,內存),同時依然可以看到整個系統的關鍵參數。

3. ac

如果你想知道每個用戶登錄服務器所使用的時間,你可以使用 ac 命令。這個命令需要你安裝 acct 包(Debian)或 psacct 包(RHEL,Centos)。

如果我們想知道所有用戶登陸服務器所使用的時間之和,我們可以直接運行 ac 命令,無需任何參數。

$ ac
        total     1261.72

如果我們想知道各個用戶所使用時間,可以加上 -p 選項。

$ ac -p
        shark                                5.24
        alvin                                5.52
        shs                               1251.00
        total     1261.76

我們還可以通過加上 -d 選項來查看具體每一天用戶使用服務器時間之和。

$ ac -d | tail -10
Jan 11  total        0.05
Jan 12  total        1.36
Jan 13  total       16.39
Jan 15  total       55.33
Jan 16  total       38.02
Jan 17  total       28.51
Jan 19  total       48.66
Jan 20  total        1.37
Jan 22  total       23.48
Today   total        9.83

小結

我們可以使用很多命令來監控系統的運行狀態,本文主要介紹了三個:watch 命令可以讓你重複執行某一條命令來監控一些參數的變化,top 命令可以查看某個用戶運行的進程數以及消耗的資源,而 ac 命令則可以查看每個用戶使用服務器時間。你經常使用哪個命令呢?歡迎留言討論!

公眾號:良許Linux

有收穫?希望老鐵們來個三連擊,給更多的人看到這篇文章

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

※教你寫出一流的銷售文案?

※超省錢租車方案

※回頭車貨運收費標準