日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

    
        
    歡迎訪問(wèn) 生活随笔!

    生活随笔

    當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

    编程问答

    jconsole工具检测堆内存变化

    發(fā)布時(shí)間:2024/4/13 编程问答 23 豆豆
    生活随笔 收集整理的這篇文章主要介紹了 jconsole工具检测堆内存变化 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
    關(guān)于垃圾回收機(jī)制講的都是比較底層了,你們有沒(méi)有用Jmeter經(jīng)過(guò)實(shí)戰(zhàn)測(cè)試過(guò)沒(méi)有,這個(gè)下去多練習(xí),通過(guò)Jmeter去測(cè)試參數(shù)的調(diào)優(yōu),你測(cè)百度是不準(zhǔn)的,因?yàn)樗泻芏嘞拗频?這個(gè)不準(zhǔn)其實(shí),一般真正測(cè)試是怎么測(cè)試呢,這個(gè)測(cè)試跟你電腦有關(guān)系,我的電腦請(qǐng)求可能稍微慢一點(diǎn),很難測(cè)試出來(lái)的,像我們之前的時(shí)候,我就看別人去做一下測(cè)試,別人都是特別清楚的,你的服務(wù)器是多少G的,是單核還是雙核,目前它的堆內(nèi)存大小是多少,后臺(tái)有個(gè)工具直接檢測(cè)出來(lái)的,比如你測(cè)之前肯定能夠?qū)崟r(shí)知道你當(dāng)前堆內(nèi)存是多少,達(dá)到多少是會(huì)堆內(nèi)存溢出的,我們都是通過(guò)工具可以檢測(cè)出來(lái)的,這是我們今天要講的兩個(gè)工具,第一個(gè)工具叫做jconsole,還有一種叫做visual VM,這兩個(gè)工具都是針對(duì)于什么,對(duì)JVM性能做一個(gè)監(jiān)控,比如最基本的,堆內(nèi)存多少,包括你當(dāng)前加載多少個(gè)類啊,包括對(duì)你系統(tǒng)的分析,可視化界面的,通過(guò)一些命令查,那命令很少用到,你知道有那幾個(gè)命令就行了,但是我就不講了,我就講在公司里比較實(shí)用的,基本上都是通過(guò)控制臺(tái)分析的,記不記得我當(dāng)時(shí)給你們說(shuō)過(guò)一個(gè)問(wèn)題,當(dāng)初說(shuō)了什么問(wèn)題,死鎖是通過(guò)什么工具進(jìn)行診斷出來(lái)的,我當(dāng)時(shí)說(shuō)過(guò)這個(gè)問(wèn)題吧,等一會(huì)我通過(guò)這個(gè)工具給大家演示一下,我們寫段代碼有個(gè)死鎖現(xiàn)象,通過(guò)jconsole,給大家演示一下,死鎖的一個(gè)診斷,但是他不能夠幫你解決,代碼哪一行出現(xiàn)死鎖現(xiàn)象,還給你們講一下,比如今后您們到大一點(diǎn)的公司,或者你們自己開公司,你們要知道,很多人訪問(wèn)比較慢,我會(huì)告訴大家,訪問(wèn)慢的原因,不是我們服務(wù)器的原因,調(diào)用別人第三方的接口,因?yàn)樗麄兛匆曨l卡的原因,卡不卡和我沒(méi)關(guān)系,我沒(méi)辦法解決,很多人以為是我沒(méi)有解決好,跟我沒(méi)關(guān)系,為什么呢,像阿里云,一般賣視頻軟件的,平均下來(lái)都是8毛一個(gè)G,我4毛一個(gè)G就是便宜一半的錢了,如果按照目前來(lái)說(shuō),用大概5,6千的,只要花2,3千塊錢,如果換成阿里云比較好的提供商的話,費(fèi)用至少提高了幾倍,2倍以上,所以這個(gè)卡的原因,沒(méi)任何影響,你們有沒(méi)有發(fā)現(xiàn),像我們?cè)诔鮿?chuàng)階段,我們沒(méi)有去測(cè)試高并發(fā)量有多少,但是關(guān)于網(wǎng)站安全的都是做了防御的,包括腳本注入的問(wèn)題都是做過(guò)的,一般來(lái)說(shuō),為什么要講到這個(gè)呢,如果你自己想創(chuàng)建公司的時(shí)候,想做一個(gè)比較好的系統(tǒng),這個(gè)時(shí)候我可以告訴大家,你們?cè)谏暇€之前,一般都會(huì)做壓力測(cè)試的,你們都聽(tīng)說(shuō)過(guò)壓力測(cè)試的吧,如果自己開公司想測(cè)一下并發(fā)量,想測(cè)一下我的性能有多好,或者是什么呢,你們今后如果進(jìn)互聯(lián)網(wǎng)公司,他一般在項(xiàng)目上線之前,做個(gè)壓力測(cè)試,比如測(cè)一下我的網(wǎng)站的性能,到底能夠達(dá)到多少,他首先會(huì)準(zhǔn)備一個(gè)測(cè)試服務(wù)器,在這個(gè)時(shí)候我們就給你講一下,個(gè)人能力只是把你的業(yè)務(wù)能力提升,個(gè)人能力取決于你自己本身的一個(gè)專研,讓你們知道知識(shí)點(diǎn),一般在做壓力測(cè)試的時(shí)候,怎么測(cè)試的,準(zhǔn)備一臺(tái)測(cè)試服務(wù)器,但是大家要記住,測(cè)試服務(wù)器和生產(chǎn)服務(wù)器是相同的,為什么要相同啊,我們來(lái)講一下,如果你搞得不同的情況下,導(dǎo)致測(cè)試的情況你在生產(chǎn)環(huán)境是不一樣的,所以一般情況下,絕大多數(shù)在做壓力測(cè)試的時(shí)候,測(cè)試環(huán)境的測(cè)試和生產(chǎn)環(huán)境一般來(lái)說(shuō)都是相同的,比如說(shuō)在正常情況下,像生產(chǎn)環(huán)境的服務(wù)器,基本上都是8個(gè)G,有的公司默認(rèn)是配置4個(gè)G,可能有些會(huì)調(diào)到8個(gè)G,但是一般來(lái)說(shuō),一般會(huì)大于一半的內(nèi)存,服務(wù)器在8個(gè)G,因?yàn)橛行╉?xiàng)目他比較小,正常情況下如果你的服務(wù)器,如果是tomcat服務(wù)器的話,只裝tomcat的情況下,內(nèi)存可能就和你的內(nèi)存就是相同的,這是大家要區(qū)分的一個(gè)概念,我給你們說(shuō)配置一半是什么意思呢,一般來(lái)說(shuō)正常情況下,都先配一半的,因?yàn)橛幸话霑?huì)給其他的應(yīng)用程序,會(huì)占內(nèi)存,如果你們把內(nèi)存全部配置給JVM的話,導(dǎo)致其他的程序不能夠申請(qǐng)內(nèi)存了,一般像大的公司,要么TOMCAT是tomcat的服務(wù)器,要么就是數(shù)據(jù)庫(kù)服務(wù)器,每個(gè)服務(wù)器之間是互不影響的,不是在單個(gè)服務(wù)器上面,這個(gè)時(shí)候服務(wù)器的配置是8個(gè)G的,他的8G內(nèi)存,他的JVM最大堆內(nèi)存大小,就是為8個(gè)G,但是最終原因是什么,取決于項(xiàng)目,這個(gè)不完全是規(guī)定出來(lái)的,就是你們?cè)谧鰤毫y(cè)試之前,都會(huì)怎么樣呢,應(yīng)用程序占內(nèi)存,我明明是4個(gè)G,但是我們查出來(lái)只有3.8G左右,你配置4個(gè)G是沒(méi)關(guān)系的,他最終申請(qǐng)的時(shí)候,你設(shè)置大點(diǎn)總比設(shè)置小點(diǎn)好嗎,有一部分確實(shí)是被其他程序占用,但是這個(gè)內(nèi)存占用具體占多少,這個(gè)也不好說(shuō)是不是,配大點(diǎn)總比配小點(diǎn)有好處的,是不是這樣的,這個(gè)大家知道就行了,不要太糾結(jié)于這些,那這個(gè)時(shí)候我就和你們說(shuō)一下,我要講一下什么呢,一般在生產(chǎn)環(huán)境里面的時(shí)候,他如果要去調(diào)優(yōu)的時(shí)候,怎么調(diào)優(yōu)呢,會(huì)怎么樣呢,會(huì)寫一個(gè)測(cè)試報(bào)告,有的地方有另外一種叫法,叫性能檢測(cè)報(bào)告,尤其大家去一些比較大的公司,性能檢測(cè)報(bào)告,這是什么意思呢,這是我們?cè)诤竺嬗幸粋€(gè)專題,這個(gè)專題講什么呢,講互聯(lián)網(wǎng)安全架構(gòu),我們專門講互聯(lián)網(wǎng)架構(gòu),互聯(lián)網(wǎng)安全架構(gòu)的時(shí)候,其實(shí)性能檢測(cè)報(bào)告其實(shí)也包含了安全的,比如我們通過(guò)一些掃描工具,檢測(cè)你的代碼哪里寫的有問(wèn)題,通過(guò)一些基本的語(yǔ)法去判斷,掃描一下哪些代碼是有缺陷的,找出來(lái),但是基本的都是通過(guò)腳本注入,SQL注入的問(wèn)題,所以這些都是測(cè)試做的,但是為什么要講呢,如果去做架構(gòu)師的時(shí)候,聊到安全的時(shí)候,能夠聊得非常深,從最基本的安全架構(gòu)原理,去訪問(wèn)最基本的安全,一般是有測(cè)試人員去安排好的,他們會(huì)有專門的測(cè)試工具,做壓力測(cè)試的,做壓力測(cè)試的時(shí)候,他們自己會(huì)寫個(gè)測(cè)試報(bào)告,一般以吞吐量為標(biāo)準(zhǔn),來(lái)進(jìn)行請(qǐng)求響應(yīng),就是他們請(qǐng)求響應(yīng)的時(shí)候,首先給你們講一下,客戶端去模擬的時(shí)候,他也會(huì)做報(bào)告記錄的,客戶端模擬也會(huì)取決網(wǎng)絡(luò)傳輸?shù)?你可能在局域網(wǎng)做通訊的時(shí)候,可能往往會(huì)比外網(wǎng)要快,所以一般在局域網(wǎng)測(cè)試的時(shí)候,他只測(cè)個(gè)大概,如果你局域網(wǎng)達(dá)到這個(gè)也掛,我們之前的那個(gè)項(xiàng)目,能夠達(dá)到7,8千,其實(shí)那個(gè)很假,正常項(xiàng)目里面,代碼是非常復(fù)雜的,不可能吞吐量7,8千的,很少很少,除非你的服務(wù)器非常好,所以當(dāng)時(shí)我們寫那個(gè)項(xiàng)目,代碼本身來(lái)說(shuō)要查很多資源的,所以當(dāng)時(shí)的吞吐量是2,3千,到了2,3千之后,內(nèi)存滿了的情況下,會(huì)導(dǎo)致雪崩效應(yīng),其他服務(wù)器就全部訪問(wèn)不了了,別人一般訪問(wèn)的時(shí)候,還有基本的防御系統(tǒng),網(wǎng)關(guān),你們可以把雪崩效應(yīng)理解為不斷的去請(qǐng)求,你就可以這樣理解就行了,就表示服務(wù)器訪問(wèn)不了了,掛了,你們可以先這么去理解,我會(huì)專門取講的,熔斷策略,不是特別高達(dá)上的東西,網(wǎng)關(guān)系統(tǒng),它會(huì)做安全處理,包括權(quán)限處理,它會(huì)預(yù)測(cè)一下,比如我明天做活動(dòng)的時(shí)候,會(huì)突破一百萬(wàn)的訪問(wèn)量,那我會(huì)在專門做測(cè)試的時(shí)候,我至少要能達(dá)到一百萬(wàn),能夠不掛就行了,如果達(dá)到100萬(wàn)掛了,你要做優(yōu)化,一般通過(guò)代碼到服務(wù)器層面,基本的高并發(fā)解決方案,高并發(fā)解決方案其實(shí)蠻多,不光是在服務(wù)器層面的,在代碼層面,在數(shù)據(jù)庫(kù)層面,還有可能在整個(gè)網(wǎng)站架構(gòu)層面,這是我會(huì)詳細(xì)講到的高并發(fā)解決方案,壓力測(cè)試其實(shí)也是相當(dāng)于做一個(gè)高并發(fā)的測(cè)試,但是壓力測(cè)試往往不會(huì)特別精準(zhǔn),壓力測(cè)試往往是一個(gè)人在做請(qǐng)求,不可能是很多電腦去請(qǐng)求,所以他不一樣的,一般公司在做壓力測(cè)試的時(shí)候,最基本的,要寫個(gè)測(cè)試報(bào)告的,它會(huì)通過(guò)這個(gè)報(bào)告基本的預(yù)測(cè)一下,最高峰能夠達(dá)到多少,模擬請(qǐng)求,DOS,XXS,上傳漏洞,這些大家不要擔(dān)心,就是別人都會(huì)有防御的,最基本的請(qǐng)求,公網(wǎng)IP只有一個(gè),偽造IP要改請(qǐng)求,那個(gè)是比較麻煩的,我們有沒(méi)有到過(guò)12306網(wǎng)站,他其實(shí)不是通過(guò)偽造IP去解決高并發(fā)的,其實(shí)你會(huì)發(fā)現(xiàn),像我去搶的時(shí)候,大概4,5百個(gè)員工用同一個(gè)IP去搶票,整個(gè)公司都不能搶票了,大家都用了同一個(gè)IP地址,所以搶不了了,根本搶不了了,所以我們會(huì)有一些第三方的軟件,因?yàn)樗鼤?huì)把請(qǐng)求交給第三方,通過(guò)第三方搶票軟件,他會(huì)到12306上去做了一個(gè)搶票的功能,他可能會(huì)買了很多服務(wù)器,給你做模擬搶票,我會(huì)講互聯(lián)網(wǎng)安全架構(gòu),企業(yè)黑名單白名單啊,檢測(cè)報(bào)告一般不是你們寫的,一般是測(cè)試人員寫的,它會(huì)告訴開發(fā)審核一下,項(xiàng)目經(jīng)理才會(huì)知道,我的服務(wù)器達(dá)到多少的時(shí)候會(huì)怎么怎么樣 在這里講兩個(gè)可視化的工具,一個(gè)叫jconsole,還有一個(gè)叫visual VM,這個(gè)是專門做JVM棧和堆的檢測(cè)的,包括還有死鎖現(xiàn)象,都會(huì)檢測(cè)出來(lái)的,這個(gè)時(shí)候我給你們講一下,jconsole是干嘛用的呢,你們有沒(méi)有了解過(guò)jps,jmap,這些命令其實(shí)也是檢測(cè)jvm的性能的一些指令,一些語(yǔ)句,但是這個(gè)東西用起來(lái)會(huì)比較麻煩,你們可能也用過(guò),我打開cmd,我輸入jps,他主要是什么目的啊,我在這邊演示一把,jps的命令相當(dāng)于怎么樣呢,我能夠去讀到,有多少JAVA程序在運(yùn)行的

    比如我先做用002程序,其實(shí)他是死鎖現(xiàn)象,我就不去說(shuō)死鎖現(xiàn)象,你們看一下,我把它運(yùn)行一下的時(shí)候,你就可以找到Test002

    以后也是用可視化工具去查的,jconsole怎么用呢,他其實(shí)是一個(gè)可視化命令的,如果你們之前的時(shí)候,在你們安裝JDK目錄,這個(gè)軟件是JDK自帶的,在哪個(gè)目錄呢,在JDK安裝目錄的bin文件夾里面,雙擊jconsole就行了,這個(gè)時(shí)候大家就可以去看一下,怎么連呢,雙擊一下jconsole.exe,而且他還有一個(gè)特別高大上的一個(gè)功能,他可以直接遠(yuǎn)程連接哪個(gè)服務(wù)器,你要知道生產(chǎn)環(huán)境的服務(wù)器是linxu版本的,可以直接聯(lián)系到生產(chǎn)環(huán)境的jvm信息,為什么這里會(huì)顯示兩個(gè),第一個(gè)是jconsole本來(lái)就是一個(gè)java程序,我再來(lái)講一下,這個(gè)jconsole主要是做什么目的呢,只要是java寫的應(yīng)用程序,他都是可以監(jiān)控到的 package com.learn.test;public class Test006 {static Object o1 = new Object();static Object o2 = new Object();public static void main(String[] args) {new Thread(new Runnable() {public void run() {synchronized (o1) {System.out.println("線程1鎖o1");try {Thread.sleep(1000);//讓當(dāng)前線程睡眠,保證讓另一線程得到o2,防止這個(gè)線程啟動(dòng)一下連續(xù)獲得o1和o2兩個(gè)對(duì)象的鎖。synchronized (o2) {System.out.println("線程1鎖o2");}} catch (InterruptedException e) { e.printStackTrace();}}}}).start();new Thread(new Runnable() {public void run() {synchronized (o2) {System.out.println("線程2鎖o2");synchronized (o1) {System.out.println("線程2鎖o1");}}}}).start();}}

    他這邊你們可以不去連接SSL,因?yàn)槲覀儧](méi)有這個(gè)證書,就用不安全連接進(jìn)行連接,這個(gè)時(shí)候他就會(huì)展示一個(gè)界面

    這個(gè)界面你們可以看到,為什么說(shuō)他比較占內(nèi)存呢,因?yàn)樗芏鄶?shù)據(jù)都是實(shí)時(shí)的,他后臺(tái)需要實(shí)時(shí)讀取新數(shù)據(jù),肯定是比較耗內(nèi)存的,就好比我現(xiàn)在寫一個(gè)while循環(huán),一直去刷新數(shù)據(jù)的情況下,是比較占內(nèi)存的,所以不要太去糾結(jié)這個(gè)軟件占不占內(nèi)存,只要這個(gè)軟件實(shí)用就行了,他這里會(huì)顯示你這個(gè)堆的使用信息,我們現(xiàn)在已經(jīng)使用了21M,最大40M,你們有沒(méi)有印象我之前是怎么講的,一般默認(rèn)是4個(gè)G,但是我們查的時(shí)候只有3.8G左右,可能還有0.2G被其他程序給占用了,所以記住啊,這個(gè)值大致相同,你也可以看到我們的堆內(nèi)存發(fā)生變化,都是實(shí)時(shí)監(jiān)控的,比如我可以知道這個(gè)程序去年的情況是怎么樣,都可以知道的,你比如這個(gè)時(shí)候我講一下,如果是在做壓力測(cè)試的時(shí)候,怎么做呢,別人在做壓力測(cè)試,你要看一下你堆內(nèi)存的情況,然后看到一些變化,CPU的占用情況,以及線程數(shù),你們待會(huì)就知道了,我們不光是GC線程,還有很多很多線程,至少10幾個(gè)線程,這里線程非常多,但是大家知道一個(gè)概念就行了,你們?nèi)绻信d趣,如果你們的程序跑的非常長(zhǎng)的時(shí)間的話,可以看看一年之前的變化,一個(gè)月之前的,我這個(gè)因?yàn)槭?我當(dāng)前的電腦,我們可以看看12個(gè)小時(shí)的變化,你們發(fā)現(xiàn)問(wèn)題沒(méi)有,這個(gè)堆內(nèi)存是不是一直在變高,你們看到變化沒(méi)有,是不是一直在增高,他可以監(jiān)控TOMCAT,都是可以監(jiān)控的,這都是沒(méi)問(wèn)題的,你看它是一直在增高,為什么呢,因?yàn)槲疫@個(gè)程序是一個(gè)死循環(huán),不過(guò)現(xiàn)在已經(jīng)死鎖了,你們可以去查一下內(nèi)存變化

    主要查的是堆內(nèi)存,這些東西是不是我都講過(guò)的,新生代,這是什么,在堆內(nèi)存里面是不是有一個(gè)eden區(qū),from區(qū)和to區(qū),我們也可以去分析到eden區(qū)的內(nèi)存發(fā)生變化

    你們發(fā)現(xiàn)沒(méi)有,這個(gè)eden區(qū),我們可以看一個(gè)變化好嗎,堆內(nèi)存大致是55M,接著我們看一下eden區(qū)里面的,eden區(qū)大概是使用了10M,那我給你們講一下,還有相差40M在哪個(gè)地方呢,你們有沒(méi)有發(fā)現(xiàn)from區(qū)和to區(qū)沒(méi)數(shù)據(jù)啊

    這個(gè)其實(shí)就是展示from區(qū)和to區(qū)的,根本就沒(méi)數(shù)據(jù)的,為什么呢,因?yàn)槔厥諜C(jī)制只有在5,6次之后才會(huì)到S0區(qū),或者S1區(qū),但是如果進(jìn)入到老年代看一下,至少要達(dá)到15次之后

    這個(gè)程序沒(méi)有定義非常大的內(nèi)存的,反正這個(gè)大體我給你們說(shuō)一下,這里面已經(jīng)查到非堆內(nèi)存,你們知道非堆內(nèi)存是什么嗎,你們有沒(méi)有誰(shuí)知道,堆內(nèi)存指的是什么,我之前講過(guò)的,不知道你們有沒(méi)有聽(tīng)說(shuō)過(guò),一般非堆內(nèi)存是指方法區(qū)的內(nèi)存

    當(dāng)前有多少個(gè)類,你們看一下,加載的類總數(shù)4020個(gè),已加載4020個(gè),你們有沒(méi)有發(fā)現(xiàn)一個(gè)問(wèn)題,我們這個(gè)程序怎么可能加載這么多類呢,你們沒(méi)有發(fā)現(xiàn)問(wèn)題嗎,我們這么簡(jiǎn)單一個(gè)程序,加載這么多類呢,記住我們的項(xiàng)目都是引用了JDK的,他可能有一些類是被JDK所占用的,而且講一下,你們以后整合到Spring的,或者整合一些常用框架的,1千都不算什么,有幾萬(wàn)個(gè)的,我們之前項(xiàng)目一個(gè)萬(wàn)多個(gè)類,一個(gè)jar包就是幾百個(gè),我們的項(xiàng)目至少有40,50個(gè)jar包,有的jar已經(jīng)達(dá)到上千個(gè)了,所以4000個(gè)還好,我之前的項(xiàng)目是1萬(wàn)多,默認(rèn)就是占用1千5百左右,因?yàn)轫?xiàng)目比較大的時(shí)候表都有100多個(gè),這個(gè)我就不細(xì)說(shuō)了,這里又基本的信息,連接的名稱

    這是虛擬機(jī)版本信息,供應(yīng)商是ORACLE公司,然后運(yùn)行時(shí)間是44分鐘時(shí)間,進(jìn)程CPU時(shí)間是1分鐘左右,總編譯時(shí)間是37.9秒,活動(dòng)線程是34,峰值40個(gè),守護(hù)線程28個(gè),線程總數(shù)92個(gè),有人說(shuō)我們?cè)趺纯赡苓@么多個(gè),你不會(huì)發(fā)現(xiàn)有問(wèn)題嗎,我們?cè)趺磿?huì)有這么多線程的,不光是GC線程

    不只是GC線程,默認(rèn)的幾個(gè),待會(huì)會(huì)看一下的,我們待會(huì)進(jìn)入項(xiàng)目測(cè)一下,應(yīng)用程序不光有GC線程,RMI線程特別特別多,當(dāng)前版本是GBK版本的,庫(kù)的基本的地址,引導(dǎo)類的地址,總物理內(nèi)存有多少,當(dāng)前已加載4020個(gè)了,你們?nèi)绻脒h(yuǎn)程的話,去監(jiān)聽(tīng)的,除非你通過(guò)命令查,命令查特別痛苦,所以一般是遠(yuǎn)程連接生產(chǎn)服務(wù)器,查一下內(nèi)存變化,尤其是測(cè)試做聯(lián)調(diào)的時(shí)候,我要知道那一秒內(nèi)存達(dá)到峰值,整個(gè)堆內(nèi)存發(fā)生變化

    ?

    總結(jié)

    以上是生活随笔為你收集整理的jconsole工具检测堆内存变化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。