自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux 內(nèi)存監(jiān)控內(nèi)存泄露和回收內(nèi)存的方法

系統(tǒng) Linux
般我們常說的內(nèi)存泄漏是指堆內(nèi)存的泄漏。堆內(nèi)存是指程式從堆中分配的,大小任意的(內(nèi)存塊的大小能夠在程式運(yùn)行期決定),使用完后必須顯示釋放的內(nèi)存

從用戶使用程式的角度來看,內(nèi)存泄漏本身不會(huì)產(chǎn)生什么危害,作為一般的用戶,根本感覺不到內(nèi)存泄漏的存在。真正有危害的是內(nèi)存泄漏的堆積,這會(huì)最終消耗盡系統(tǒng)任何的內(nèi)存。以下就介紹下Linux 內(nèi)存監(jiān)控內(nèi)存泄露和回收內(nèi)存的方法。


1、Linux 內(nèi)存監(jiān)控內(nèi)存泄漏的定義:
  一般我們常說的內(nèi)存泄漏是指堆內(nèi)存的泄漏。堆內(nèi)存是指程式從堆中分配的,大小任意的(內(nèi)存塊的大小能夠在程式運(yùn)行期決定),使用完后必須顯示釋放的內(nèi)存。應(yīng)用程式一般使用malloc,realloc,new等函數(shù)從堆中分配到一塊內(nèi)存,使用完后,程式必須負(fù)責(zé)相應(yīng)的調(diào)用free或delete釋放該內(nèi)存塊,否則,這塊內(nèi)存就不能被再次使用,我們就說這塊內(nèi)存泄漏了。


2、Linux 內(nèi)存監(jiān)控內(nèi)存泄露的危害
從用戶使用程式的角度來看,內(nèi)存泄漏本身不會(huì)產(chǎn)生什么危害,作為一般的用戶,根本感覺不到內(nèi)存泄漏的存在。真正有危害的是內(nèi)存泄漏的堆積,這會(huì)最終消耗盡系統(tǒng)任何的內(nèi)存。從這個(gè)角度來說,一次性內(nèi)存泄漏并沒有什么危害,因?yàn)樗粫?huì)堆積,而隱式內(nèi)存泄漏危害性則很大,因?yàn)檩^之于常發(fā)性和偶發(fā)性內(nèi)存泄漏他更難被檢測(cè)到。存在內(nèi)存泄漏問題的程式除了會(huì)占用更多的內(nèi)存外,還會(huì)使程式的性能急劇下降。對(duì)于服務(wù)器而言,假如出現(xiàn)這種情況,即使系統(tǒng)不崩潰,也會(huì)嚴(yán)重影響使用。


3、Linux 內(nèi)存監(jiān)控內(nèi)存泄露的檢測(cè)和回收

對(duì)于內(nèi)存溢出之類的麻煩可能大家在編寫指針比較多的復(fù)雜的程式的時(shí)候就會(huì)碰到。在 Linux 或 unix 下,C、C++語言是最使用工具。但是我們的 C++ 程式缺乏相應(yīng)的手段來檢測(cè)內(nèi)存信息,而只能使用 top 指令觀察進(jìn)程的動(dòng)態(tài)內(nèi)存總額。而且程式退出時(shí),我們無法獲知任何內(nèi)存泄漏信息。
使用kill命令
使用Linux命令回收內(nèi)存,我們能夠使用Ps、Kill兩個(gè)命令檢測(cè)內(nèi)存使用情況和進(jìn)行回收。在使用***用戶權(quán)限時(shí)使用命令“Ps”,他會(huì)列出任何正在運(yùn)行的程式名稱,和對(duì)應(yīng)的進(jìn)程號(hào)(PID)。Kill命令的工作原理是:向Linux操作系統(tǒng)的內(nèi)核送出一個(gè)系統(tǒng)操作信號(hào)和程式的進(jìn)程號(hào)(PID)。
應(yīng)用例子:
為了高效率回收內(nèi)存能夠使用命令ps 參數(shù)v:
[root@www ~]# ps v
PID TTY STAT   TIME MAJFL   TRS   DRS   RSS %MEM COMMAND
2542 tty1Ss+    0:00 08 1627   428 0.1 /sbin/mingetty tty1
2543 tty2Ss+    0:00 08 1631   428 0.1 /sbin/mingetty tty2
2547 tty3Ss+    0:00 08 1631   432 0.1 /sbin/mingetty tty3
2548 tty4Ss+    0:00 08 1627   428 0.1 /sbin/mingetty tty4
2574 tty5Ss+    0:00 08 1631   432 0.1 /sbin/mingetty tty5
2587 tty6Ss+    0:00 08 1627   424 0.1 /sbin/mingetty tty6
2657 tty7Ss+    1:1812 1710 29981 7040 3.0 /usr/bin/Xorg :0 -br -a
2670 pts/2    Ss0:01 2   682 6213 1496 0.6 -bash
3008 pts/4    Ss0:00 2   682 6221 1472 0.6 /bin/bash
3029 pts/4    S+0:00 2    32 1783   548 0.2 ping 192.168.1.12
3030 pts/2    R+0:00 2    73 5134   768 0.3 ps v
然后假如想回收Ping命令的內(nèi)存的話,使用命令:
# Kill -9 3029

【編輯推薦】

  1. Linux core dump的詳細(xì)介紹及使用
  2. Linux rsync同步由手動(dòng)到自動(dòng)
  3. linux Mrtg監(jiān)控主機(jī)流量的安裝方法
  4. CentOS系統(tǒng)如何解決鼠標(biāo)花屏的問題
  5. Linux抓圖工具KSnapshot詳細(xì)介紹
     
責(zé)任編輯:chenqingxiang 來源: http://4ujava.javaeye.com
相關(guān)推薦

2013-10-11 17:32:18

Linux運(yùn)維內(nèi)存管理

2013-04-09 14:49:18

Linux內(nèi)存統(tǒng)計(jì)內(nèi)存泄露

2010-06-11 17:07:14

Linux 內(nèi)存監(jiān)控

2025-03-26 00:00:05

2010-07-29 14:08:05

Flex內(nèi)存泄露

2010-08-10 10:00:57

Flex內(nèi)存

2010-06-10 17:12:23

Linux 內(nèi)存監(jiān)控

2017-02-21 16:40:16

Android垃圾回收內(nèi)存泄露

2010-09-27 13:41:22

JVM內(nèi)存回收

2010-06-07 13:53:06

Linux 內(nèi)存監(jiān)控

2022-10-10 11:37:14

Gomap內(nèi)存

2010-09-25 11:32:24

Java內(nèi)存泄漏

2012-03-02 14:20:46

JavaJVM

2010-06-02 11:06:15

Linux 內(nèi)存監(jiān)控

2010-05-26 12:28:04

Linux內(nèi)存監(jiān)控

2009-06-16 11:11:07

Java內(nèi)存管理Java內(nèi)存泄漏

2021-09-05 18:29:58

Linux內(nèi)存回收

2019-12-26 08:45:46

Linux虛擬內(nèi)存

2013-08-07 10:07:07

Handler內(nèi)存泄露

2011-07-20 17:04:43

Objective-C 內(nèi)存 內(nèi)存泄露
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)