1、垃圾回收的方法
生活中可回收資源主要有:
(1)廢紙:報紙、書本紙、包裝用紙、辦公用紙、廣告用紙、紙盒等;注意紙巾和廁所紙由於水溶性太強不可回收。
(2)塑料:各種塑料袋、塑料泡沫、塑料包裝、一次性塑料餐盒餐具、硬塑料、料牙刷、塑料杯子、礦泉水瓶等;
(3)玻璃:玻璃瓶和碎玻璃片、鏡子、燈泡、暖瓶等;
(4)金屬:易拉罐、鐵皮罐頭盒、牙膏皮等。
(5)布料:主要包括廢棄衣服、桌布、毛巾、布包等
如每回收1噸廢紙可造好紙850公斤,節省木材300公斤,比等量生產減少污染74%;每回收1噸塑料飲料瓶可獲得0.7噸二級原料;每回收1噸廢鋼鐵可煉好鋼0.9噸,比用礦石冶煉節約成本47%,減少空氣污染75%,減少97%的水污染和固體廢物。
可回收物以外的垃圾基本上都是廢棄物。比如煙頭、雞毛、廢電、煤渣、建築垃圾、油漆顏料、食品殘留物等等。
有毒垃圾,包括廢電池、日光燈管、水銀溫度計、油漆筒、葯品、化妝品等。垃圾是放錯了地方的財富。回收垃圾不但美化環境,而且垃圾再利用可以節省新資源的開采從而從根本上減少垃圾。參與環保舉手之勞,讓我們從身邊小事做起,從正確投放垃圾做起吧。目前垃圾,均以焚化方式處理,根據統計,垃圾中約有40%-50%是可回收再生的資源垃圾,實施垃圾分類可回收有用資源,保護焚化爐爐體,減少公害防治成本,亦可保障人民身體健康,利已又利人。為了開創更美好清新的港都,造就永續資源再利用
廢電池中含有汞、鎘、鉛、鋅等重金屬有毒物質。人若汞中毒,會損害中樞神經系統,死亡率高達40%;鎘的主要危害是腎毒性,還會續發「痛痛病」( 引起骨質疏鬆,軟骨病和骨折)同時還是致癌物質;人體食用含鉛的食物,會影響酶及正常血紅素合成,影響神經系統;
就比如說,廢電池在填埋處理一個月內,其金屬外殼就會被腐蝕穿孔,廢電池中的有害物質就會進入土壤、水體,對環境造成污染。據環保專家測試,如果 6噸生活垃圾中混入一粒含汞電池,當這些垃圾進行填埋後,土壤中汞的濃度就會超過安全標准;若廢電池混入生活垃圾進入焚燒廠,則其中的汞、鎘等金屬將會在高溫下氣化排入大氣,使大氣環境受污染,影響人體的健康。
2、關於垃圾回收的問題
垃圾處理都是問題 別說回收了。
一般意義上的回收比較簡單,但是需要全民環保意識的提高,主動的將垃圾分類投放垃圾桶。像飲料罐什麼的簡單廢品都可以回收。
但是像電池、冰箱、電腦之類的很難。比如電池,我們學校以前在教學樓有個專門的回收桶,也有很多同學往裡面放。但是這些東西最後去哪裡了?我們老師說,目前中國還處理不了,或者說不能全部處理,成本很高。大部分都找個地方深埋了。這東西埋了就等於造了一顆不定定時炸彈,早晚出問題。還不如不收集直接分散到環境了。(我老是是做固廢的)
冰箱 電腦之類的復合垃圾需要拆、分類。更麻煩,小作坊收去以後拆下來有用的(內賣錢的)其他的部分都隨便扔了,裡面的重金屬什麼的污染尤其厲害。
喊口號容易,實際上……
3、如何馴服java GC導致暫停
內存(條)是便宜,很不幸,垃圾回收機制導致的暫停會嚴重影響系統性能,好像JVM內存最多支持2G,作者花費大量時間精力使用32G來提高系統性能,這篇是其心得。
GC微調是非常和應用有關,該篇的目標要求是:使用10G更大Heaps和嚴格的響應時間(毫秒級別),(吞吐量和延遲性是一對矛盾,這次GC微調主要是追求低延遲)。作者項目特點是:
1.Heap用於在內存中儲存數據結構
2.Heap大小超過10G
3.請求時間要求更快
4.事務是短的(幾百毫秒) 一個事務可以包括幾個請求
5.內存中數據修改頻率和面積低,不會一秒內修改整個10G內存,每秒更新10M即可。
此處省略垃圾回收機制原理介紹.....
總體來說,banq註:JVM分新生代和舊生代,新創建在新生代,通過新生代垃圾回收,如果不能被回收,將逐步轉入舊生代,舊生代內存可以實現緩存In-memeory數據,顯然新舊兩代的垃圾回收演算法最好不一樣,新生代需要頻繁,而舊生代不需要頻繁,如果我們內存緩存控製得好,舊生代就不會啟動垃圾回收機制,這樣就不會導致系統暫停。
該文介紹如何來進行新生代大小調節,防止垃圾回收機制頻繁啟動,先使用XX:MaxNewSize= -XX:NewSize= 指定新生代大小,使用-XX:+PrintGCDetails -XX:+PrintTenuringDistribution -XX:+PrintGCTimestamps)輸出GC診斷結果。
有幾個數據需要計算一下:
新生代收集期間值,整個分配情況,短生命對象的分配大小,長生命對象的分配情況,中等生命對象分配。
我個人更喜歡使用psi-Probe安裝在tomcat下,一目瞭然,如附件圖:
配置恰當的緩存Cache策略來解決GC問題也相當重要,我們提倡基於內存的領域對象編程,大量數據都在緩存中in-memory,如何保證他們的生命周期和JVM的垃圾回收機制不沖突,也是一種實際問題,文章提出下面幾點:
1.為緩存增加失效期,讓新生代的GC期間要長於緩存的失效期,也就是緩存中對象數據失效後,正好GC啟動後可以回收這些失效對象。
2.增加延長新生代的GC期間。
3.在緩存中使用弱引用。緩存產品自己的事,和我們應用者無關。
4.增加緩存大小,我個人經驗盡可能將資料庫數據以領域對象方式都載入到內存中。
JVM首先分配所有對在新生代,然後將倖存對象(一般是緩存中對象)再分配到舊生代,或再分配到新生代,這些對象的拷貝將耗費時間導致新生代收集暫停,兩種選擇:
1.在第一次收集時,就將對象復制到舊生代
2.第二次收集時,將對象復制到舊生代。
第一種辦法將導致一些短生命周期對象復制到舊生代,第二種辦法需要注意新生代垃圾收集的頻度和長生命周期對象是否小。
對於一個巨大的heap,新生代垃圾收集暫停主要是在空間掃描和復制倖存對象上,在新生代大小上需要取得一個平衡,舊生代大小足夠放入應用的數據,比如JiveJdon一天下來緩存的大小是200K左右(每天啟動的情況下),只要舊生代大小大於這個值即可,不能太大,也不能太小。
增加新生代大小要增加整個JVM大小,否則就會降低舊生代的內存大小。
可以配置cms短期暫停:–XX:CMSWaitDuration –設置收集暫停的最大間隔時間,越大你的應用將被暫停,類似死機沒有反應。XX:+CMSScavengeBeforeRemark 可以避免在收集期間同時掃描。
原文還提到CMS(Concurrent Mark Sweep)激活會導致暫停等等。
針對不同應用特點進行演算法配置,在線事務處理將耗費響應時間,而批處理將產生大量垃圾,這些都要用不同JVM來處理。
4、cms垃圾回收演算法在gc過程中哪幾個階段會暫停應用縣城
中間調整過幾次,先搞了幾台機器做了驗證,後來逐步推廣的。
1、調大heap區,由原來的4g,調整到5g,young區的大小不變,還是2g,這時候old區就由2g變為3g了(這樣保證old區有足夠的空間);
2、設置-XX:UseCMSInitiatingOccupancyOnly,其實這個不關這個問題,只是發現半夜CMS進行的有點頻繁,就禁止掉了悲觀策略;
3、設置CMS區回收的比例,從80%調整到75%,讓old區盡早的進行,有足夠的空間剩餘;
為什麼要有GC(垃圾回收)?
JVM通過GC來回收堆和方法區中的內存,GC的基本原理就是找到程序中不再被使用的對象,然後回收掉這些對象佔用的內存。
主要的收集器有哪些?
引用計數器和跟蹤計數器兩種。
引用計數器記錄對象是否被引用,當計數器為零時,說明對象已經不再被使用,可以進行回收。java中的對象有復雜的引用關系,不是很適合引用計數器,所以sun jdk中並沒有實現這種GC方式。
跟蹤收集器,全局記錄數據的引用狀態,基於一定的條件觸發。執行的時候,從根集合開始掃描對象的引用關系,主要有復制(copying)、標記-清除(Mark-Sweep)、標記-壓縮(Mark-Compact)那種演算法。
5、cms gc過程中哪幾個階段暫停應用程序
問題解決:中間調整過幾次,先搞了幾台機器做了驗證,後來逐步推廣的。
1、調大heap區,由原來的4g,調整到5g,young區的大小不變,還是2g,這時候old區就由2g變為3g了(這樣保證old區有足夠的空間);
2、設置-XX:UseCMSInitiatingOccupancyOnly,其實這個不關這個問題,只是發現半夜CMS進行的有點頻繁,就禁止掉了悲觀策略;
3、設置CMS區回收的比例,從80%調整到75%,讓old區盡早的進行,有足夠的空間剩餘;
為什麼要有GC(垃圾回收)?
JVM通過GC來回收堆和方法區中的內存,GC的基本原理就是找到程序中不再被使用的對象,然後回收掉這些對象佔用的內存。
6、cms垃圾回收演算法在gc過程中哪個階段會暫停應用線程
Phase 1: Initial Mark(初始化標記)和 Phase 5: Final Remark(重新標記)這兩個階段會發生stop-the-world,暫停所有應用線程。
7、cms垃圾回收演算法在gc過程中哪幾個階段會暫停
P
8、cms垃圾回收演算法在gc過程中的哪個階段會暫停應用線程
GC在java中是垃圾回收機制,當你創建一個對象時,它就開始跟蹤,當對象「可到達」時,就自動回收,也可以手動調用,但一般不推薦使用
9、怎麼禁止程序後台運行或暫停
使用android手機的用戶可能都安裝了任務管理的軟體,使用android手機真的有必要安裝結束任務的軟體嗎?大家在使用中也都發現了,很多軟體在被結束後,馬上就會又出現在任務列表裡,或是稍等一會自己也會出現,任務管理不停的結束後台程序,也沒見給手機的運行速度帶來多少提升,這是為什麼呢? 其實大家不用那麼在意android手機剩餘內存的大小。很多人都是把使用其他系統的習慣帶到了android手機上,不是所有的智能手機系統都一樣的。android大多數應用沒有退出的設計其實是有道理的,這和系統對進程的調度機制有關系。如果你知道java,就能更清楚這機制了。其實和java的垃圾回收機制類似,系統有一個規則來回收內存。進行內存調度有個閥值,只有低於這個值系統才會按一個列表來關閉用戶不需要的東西。當然這個值默認設置得很小,所以你會看到內存老在很少的數值徘徊。但事實上他並不影響速度。相反加快了下次啟動應用的速度。這本來也是android的優勢之一,如果人為去關閉進程,沒有太大必要。