QT 程序中对Linux设备内存的监控
来源:互联网 发布:交趾郡 知乎 编辑:程序博客网 时间:2024/06/07 02:58
最新在QT上开发应用程序的过程,需要对应用程序运行过程中Linux设备的内存使用率等进行显示,在Linux设备内存占用较高时给用户提示!
由于本人对Linux系统任务管理器的原理,不能直接从任务管理器中得到Linux 设备CPU的占用率,于是就采用间接办法来获取CPU信息。
Linux系统信息一般都能在/proc/目录下查看cpuinfo,meminfo文件来获取,通过读取解析这些文件,关于Linux设备的消息都能获取到,然后在界面上以不同形式显示出来。
查看/proc/下meminfo 文件信息如下图:
文件格式比较统一,可以通过解析文件获取所需参数的值。
本人实现方法如下:
//parse meminfo file
QString val;
QFile file;
file.setFileName("/proc/meminfo");
file.open(QIODevice::ReadOnly | QIODevice::Text);
val = file.readAll(); //将整个文件内容转化成字符串
QStringList strList = QString(val).split('\n'); //通过“\n”将整个文件内容按字符串进行存储
QString stringTmp;
for(int i = 0; i != strList.size(); i++)
{
stringTmp = strList.at(i);
if(!(stringTmp.isEmpty()))
{
QStringList strListTmp = QString(stringTmp).split(':');
for(int j = 0; j != strListTmp.size(); j++)
{
mMapMemoryFile.insert(strListTmp.at(0),strListTmp.at(1)); //将每个字符串的“key” 、"value"解析出来存入一个Map中方便查找
}
}
}
QMap<QString,QString>::iterator iter1 = mMapMemoryFile.find("MemTotal");
QString tpuMemTotalStr = (iter1.value()).trimmed();
int index1 = tpuMemTotalStr.indexOf("kB");
QString tpuMemTotal = tpuMemTotalStr.left(index1); //将value中的“kB”去掉,只保留数值
QMap<QString,QString>::iterator iter2 = mMapMemoryFile.find("MemFree");
QString tpuMemFreeStr = (iter2.value()).trimmed();
int index2 = tpuMemFreeStr.indexOf("kB");
QString tpuMemFree = tpuMemFreeStr.left(index2);
- QT 程序中对Linux设备内存的监控
- Linux下的内存监控小程序
- 在linux中对vbox的cpu使用率监控
- nagios对linux的监控
- QT中对可执行程序的打包发布
- linux中C程序的内存布局
- 使用shell 脚本对 Linux 系统进程的CPU使用率与内存资源进行监控
- 使用shell 脚本对 Linux 系统进程的CPU使用率与内存资源进行监控
- 使用CACTI监控H3C设备的CPU和内存使用率
- 【Qt开发】【Linux开发】Qt程序在嵌入式设备(arm) 上运行,鼠标擦除界面的解决方案
- 内容数据防泄密(DLP)中对非usb模式下手机平板设备的监控
- Linux环境中Qt程序的手工发布
- android开发过程中,测试apk进程对设备内存占用的一般方法
- java程序内存的使用与windows 内存监控
- Linux下对进程的监控
- linux主机java应用的内存监控
- Linux下基于erlang的内存监控
- Linux 内存 CPU 磁盘 网络流量的监控
- C#228课的主要内容
- datagrid下fitcolums设置没有铺满100%问题
- 直方图的均衡化
- 水仙花数
- 数据结构复习资料
- QT 程序中对Linux设备内存的监控
- GPA计算
- java三大特性——多态
- oracl数据库(子查询)
- Eclipse 设置编码格式
- SpringMvc-Hibernate校验
- ERROR 1055 (42000): Expression #1 of ORDER BY clause is not in GROUP BY..sql_mode=only_full_group_by
- BZOJ 2748: [HAOI2012]音量调节
- Using Databases with Python