国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux 內存監控內存泄露和回收內存的方法

2024-08-27 23:57:27
字體:
來源:轉載
供稿:網友

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

1、Linux 內存監控內存泄漏的定義:

一般我們常說的內存泄漏是指堆內存的泄漏。堆內存是指程式從堆中分配的,大小任意的(內存塊的大小能夠在程式運行期決定),使用完后必須顯示釋放的內存。應用程式一般使用malloc,realloc,new等函數從堆中分配到一塊內存,使用完后,程式必須負責相應的調用free或delete釋放該內存塊,否則,這塊內存就不能被再次使用,我們就說這塊內存泄漏了。

2、Linux 內存監控內存泄露的危害

從用戶使用程式的角度來看,內存泄漏本身不會產生什么危害,作為一般的用戶,根本感覺不到內存泄漏的存在。真正有危害的是內存泄漏的堆積,這會最終消耗盡系統任何的內存。從這個角度來說,一次性內存泄漏并沒有什么危害,因為他不會堆積,而隱式內存泄漏危害性則很大,因為較之于常發性和偶發性內存泄漏他更難被檢測到。存在內存泄漏問題的程式除了會占用更多的內存外,還會使程式的性能急劇下降。對于服務器而言,假如出現這種情況,即使系統不崩潰,也會嚴重影響使用。

3、Linux 內存監控內存泄露的檢測和回收

對于內存溢出之類的麻煩可能大家在編寫指針比較多的復雜的程式的時候就會碰到。在 Linux 或 unix 下,C、C++語言是最使用工具。但是我們的 C++ 程式缺乏相應的手段來檢測內存信息,而只能使用 top 指令觀察進程的動態內存總額。而且程式退出時,我們無法獲知任何內存泄漏信息。

使用kill命令

使用Linux命令回收內存,我們能夠使用Ps、Kill兩個命令檢測內存使用情況和進行回收。在使用終極用戶權限時使用命令“Ps”,他會列出任何正在運行的程式名稱,和對應的進程號(PID)。Kill命令的工作原理是:向Linux操作系統的內核送出一個系統操作信號和程式的進程號(PID)。

應用例子:

為了高效率回收內存能夠使用命令ps 參數v:

  1. [root@www ~]# ps v  
  2. PID TTY STAT   TIME MAJFL   TRS   DRS   RSS %MEM COMMAND  
  3. 2542 tty1Ss+    0:00 08 1627   428 0.1 /sbin/mingetty tty1  
  4. 2543 tty2Ss+    0:00 08 1631   428 0.1 /sbin/mingetty tty2  
  5. 2547 tty3Ss+    0:00 08 1631   432 0.1 /sbin/mingetty tty3  
  6. 2548 tty4Ss+    0:00 08 1627   428 0.1 /sbin/mingetty tty4  
  7. 2574 tty5Ss+    0:00 08 1631   432 0.1 /sbin/mingetty tty5  
  8. 2587 tty6Ss+    0:00 08 1627   424 0.1 /sbin/mingetty tty6  
  9. 2657 tty7Ss+    1:1812 1710 29981 7040 3.0 /usr/bin/Xorg :0 -br -a  
  10. 2670 pts/2    Ss0:01 2   682 6213 1496 0.6 -bash  
  11. 3008 pts/4    Ss0:00 2   682 6221 1472 0.6 /bin/bash  
  12. 3029 pts/4    S+0:00 2    32 1783   548 0.2 ping 192.168.1.12  
  13. 3030 pts/2    R+0:00 2    73 5134   768 0.3 ps v 

然后假如想回收Ping命令的內存的話,使用命令:# Kill -9 3029

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 珲春市| 景泰县| 忻州市| 洪江市| 商城县| 盘山县| 锡林郭勒盟| 陈巴尔虎旗| 平舆县| 丹凤县| 苍南县| 嘉祥县| 朔州市| 资源县| 武平县| 双牌县| 聊城市| 霞浦县| 灵武市| 玉林市| 武邑县| 龙州县| 宁津县| 昌宁县| 洮南市| 同心县| 巴楚县| 新余市| 清涧县| 新龙县| 洛南县| 冷水江市| 合水县| 买车| 贡觉县| 郁南县| 嘉义县| 安义县| 夏河县| 石狮市| 忻城县|