|簡體中文

比思論壇

 找回密碼
 按這成為會員
搜索



查看: 9111|回復: 20
打印 上一主題 下一主題

top命令是怎么实现的

[複製鏈接]

4

主題

0

好友

753

積分

高中生

Rank: 4

  • TA的每日心情

    前天 15:53
  • 簽到天數: 1071 天

    [LV.10]以壇為家III

    推廣值
    0
    貢獻值
    15
    金錢
    231
    威望
    753
    主題
    4

    簽到勳章 簽到達人 文明人 回文勇士

    跳轉到指定樓層
    樓主
    發表於 2016-5-13 20:50:38 |只看該作者 |倒序瀏覽
    20金錢
    好奇top命令是怎么实现的,看代码看不太懂。

    自己尝试写了个小程序,去读/proc下的文件获取所有进程信息,挺占cpu和内存。

    top刷新频率1s,刷新频率很高了,但占很少资源,它的进程信息难道不是从/proc下的进程相关文件里读取的,还是有什么优化技巧?

    4

    主題

    0

    好友

    753

    積分

    高中生

    Rank: 4

  • TA的每日心情

    前天 15:53
  • 簽到天數: 1071 天

    [LV.10]以壇為家III

    推廣值
    0
    貢獻值
    15
    金錢
    231
    威望
    753
    主題
    4

    簽到勳章 簽到達人 文明人 回文勇士

    沙發
    發表於 2016-5-13 20:51:12 |只看該作者
    坐等大神来解答啊
    回復

    使用道具 舉報

    4

    主題

    0

    好友

    753

    積分

    高中生

    Rank: 4

  • TA的每日心情

    前天 15:53
  • 簽到天數: 1071 天

    [LV.10]以壇為家III

    推廣值
    0
    貢獻值
    15
    金錢
    231
    威望
    753
    主題
    4

    簽到勳章 簽到達人 文明人 回文勇士

    板凳
    發表於 2016-5-14 10:24:18 |只看該作者
    求大神解答,不要沉了啊
    回復

    使用道具 舉報

    31

    主題

    0

    好友

    487

    積分

    中學生

    Rank: 3Rank: 3

  • TA的每日心情
    郁悶
    2024-10-21 22:32
  • 簽到天數: 266 天

    [LV.8]以壇為家I

    推廣值
    0
    貢獻值
    66
    金錢
    601
    威望
    487
    主題
    31
    地板
    發表於 2016-5-24 15:59:41 |只看該作者
    請善用帖子右下角舉報鍵,來檢舉有害網站/垃圾/宣傳帖,每個舉報會有金錢增加。
    top命令应该有开发者的文档的吧,查查看
    回復

    使用道具 舉報

    4

    主題

    0

    好友

    753

    積分

    高中生

    Rank: 4

  • TA的每日心情

    前天 15:53
  • 簽到天數: 1071 天

    [LV.10]以壇為家III

    推廣值
    0
    貢獻值
    15
    金錢
    231
    威望
    753
    主題
    4

    簽到勳章 簽到達人 文明人 回文勇士

    5#
    發表於 2016-5-25 12:27:23 |只看該作者
    pddnet 發表於 2016-5-24 15:59
    top命令应该有开发者的文档的吧,查查看

    源码里没有找到,不知道还能去哪找
    回復

    使用道具 舉報

    31

    主題

    0

    好友

    487

    積分

    中學生

    Rank: 3Rank: 3

  • TA的每日心情
    郁悶
    2024-10-21 22:32
  • 簽到天數: 266 天

    [LV.8]以壇為家I

    推廣值
    0
    貢獻值
    66
    金錢
    601
    威望
    487
    主題
    31
    6#
    發表於 2016-5-25 18:35:24 |只看該作者
    1370672326 發表於 2016-5-25 12:27
    源码里没有找到,不知道还能去哪找

    /*
    * Copyright (c) 2008, The Android Open Source Project
    * All rights reserved.
    *
    * Redistribution and use in source and binary forms, with or without
    * modification, are permitted provided that the following conditions
    * are met:
    *  * Redistributions of source code must retain the above copyright
    *    notice, this list of conditions and the following disclaimer.
    *  * Redistributions in binary form must reproduce the above copyright
    *    notice, this list of conditions and the following disclaimer in
    *    the documentation and/or other materials provided with the  
    *    distribution.
    *  * Neither the name of Google, Inc. nor the names of its contributors
    *    may be used to endorse or promote products derived from this
    *    software without specific prior written permission.
    *
    * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
    * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
    * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
    * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
    * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED  
    * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
    * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    * SUCH DAMAGE.
    */  
      
    #include <ctype.h>  
    #include <dirent.h>  
    #include <grp.h>  
    #include <pwd.h>  
    #include <stdio.h>  
    #include <stdlib.h>  
    #include <string.h>  
    #include <sys/types.h>  
    #include <unistd.h>  
      
    回復

    使用道具 舉報

    1

    主題

    0

    好友

    931

    積分

    高中生

    Rank: 4

  • TA的每日心情
    慵懶
    前天 12:24
  • 簽到天數: 1330 天

    [LV.10]以壇為家III

    推廣值
    0
    貢獻值
    0
    金錢
    10853
    威望
    931
    主題
    1
    7#
    發表於 2016-6-29 13:53:55 |只看該作者
    等大神解答
    回復

    使用道具 舉報

    4

    主題

    0

    好友

    753

    積分

    高中生

    Rank: 4

  • TA的每日心情

    前天 15:53
  • 簽到天數: 1071 天

    [LV.10]以壇為家III

    推廣值
    0
    貢獻值
    15
    金錢
    231
    威望
    753
    主題
    4

    簽到勳章 簽到達人 文明人 回文勇士

    8#
    發表於 2016-6-30 16:18:34 |只看該作者
    pddnet 發表於 2016-5-25 18:35
    /*
    * Copyright (c) 2008, The Android Open Source Project
    * All rights reserved.

    没看懂想表达什么
    回復

    使用道具 舉報

    4

    主題

    0

    好友

    753

    積分

    高中生

    Rank: 4

  • TA的每日心情

    前天 15:53
  • 簽到天數: 1071 天

    [LV.10]以壇為家III

    推廣值
    0
    貢獻值
    15
    金錢
    231
    威望
    753
    主題
    4

    簽到勳章 簽到達人 文明人 回文勇士

    9#
    發表於 2016-7-10 19:36:57 |只看該作者
    elitebook 發表於 2016-7-9 15:40
    http://blog.csdn.net/earbao/article/details/43453111
    通过读/proc目录的文件

    这个实现性能和top命令差太多,进程越多,占用cpu飙升
    回復

    使用道具 舉報

    6

    主題

    0

    好友

    3838

    積分

    大學生

    Rank: 6Rank: 6

  • TA的每日心情
    擦汗
    前天 18:39
  • 簽到天數: 2600 天

    [LV.Master]伴壇終老

    推廣值
    0
    貢獻值
    10
    金錢
    0
    威望
    3838
    主題
    6

    回文勇士 男生勳章 文明人 簽到勳章 中學生 簽到達人 高中生

    10#
    發表於 2016-7-17 12:29:55 |只看該作者
    top估计是直接读取内核进程链等参数的,你直接通过文件系统去读写,那一定慢了
    回復

    使用道具 舉報

    您需要登錄後才可以回帖 登錄 | 按這成為會員

    重要聲明:本論壇是以即時上載留言的方式運作,比思論壇對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,讀者及用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,讀者及用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本論壇受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者及用戶發現有留言出現問題,請聯絡我們比思論壇有權刪除任何留言及拒絕任何人士上載留言 (刪除前或不會作事先警告及通知 ),同時亦有不刪除留言的權利,如有任何爭議,管理員擁有最終的詮釋權。用戶切勿撰寫粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。

    手機版| 廣告聯繫

    GMT+8, 2024-11-26 02:19 , Processed in 0.021208 second(s), 15 queries , Gzip On, Memcache On.

    Powered by Discuz! X2.5

    © 2001-2012 Comsenz Inc.

    回頂部