查看: 3065|回复: 2

【香蕉派程序开发】5110屏幕显示当前系统信息(2) - 工作原理

[复制链接]
  • TA的每日心情
    奋斗
    2022-9-16 05:52
  • 签到天数: 1368 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2014-9-14 08:52:22 | 显示全部楼层 |阅读模式
    分享到:
        其实原理很简单,就是按照一定时间间隔去读取系统信息然后再显示出来。只不过CPU的使用率并不是一次能够得到的,而是需要一段时间(至少两次)的差值计算出来的。

        举个实际的例子:
        从系统中得到的数据
                user        nice        system        idle        iowait        irq        softirq        stealstonlen        guestcpu        38082        627        27594        893908        12256        581                895        0                0
          
      这个数据是某一次获取得到的,像这样的数据需要读取两次,用第二次的值减去第一次的值计算的半分比就是CPU的使用率,计算方法为:

        used:= user +nice + system + iowait + irq + softirq + stealstonlen + guest;
        totle:= user +nice + system + idle + iowait + irq + softirq + stealstonlen + guest;

        percent:= (used2 - used1) * 100 / (totle2 - totle1);

        内存就很简单了,直接获取当前的就可以了。

        获取这些数据的两个文件是:
        CPU: '/proc/stat'
        MEM: '/proc/meminfo'
        可以使用线程、定时器等来完成,哪怕是while+sleep都可以,只不过CPU占用就大了,所以还是推荐用线程。

        不过呢,为了体现出Lazarus快速开发的优势,我直接在窗体上放了个Timer,简单省事、资源占用低。
      

    不好意思,开发过程没有截图,香蕉派已经不在了,请看下篇的效果吧。

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-4-18 08:38
  • 签到天数: 110 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2014-9-14 19:24:56 | 显示全部楼层
    占沙发,顶一个
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-6-24 16:41
  • 签到天数: 709 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2014-9-15 09:33:03 | 显示全部楼层
    啥东东  看看啊
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-15 19:24 , Processed in 0.128473 second(s), 19 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.