`
sogo6
  • 浏览: 113774 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

linux 获取内存的方法

    博客分类:
  • C++
 
阅读更多
#include <sys/resource>
int getrusage(int who, struct rusage *r_usage);  


利用getrusage可以得到进程的相关资源信息。如:用户开销时间,系统开销时间,接收的信号量等等;

下面是rusage的结构:
struct rusage {
  struct timeval ru_utime; /* user time used */
  struct timeval ru_stime; /* system time used */
  long ru_maxrss;
  #define ru_first ru_ixrss
  long ru_ixrss; /* XXX: 0 */
  long ru_idrss; /* XXX: sum of rm_asrss */
  long ru_isrss; /* XXX: 0 */
  long ru_minflt; /* any page faults not requiring I/O */
  long ru_majflt; /* any page faults requiring I/O */
  long ru_nswap; /* swaps */
  long ru_inblock; /* block input operations */
  long ru_oublock; /* block output operations */
  long ru_msgsnd; /* messages sent */
  long ru_msgrcv; /* messages received */
  long ru_nsignals; /* signals received */
  long ru_nvcsw; /* voluntary context switches */
  long ru_nivcsw; /* involuntary " */
  #define ru_last ru_nivcsw
  };

如果参数who是RUSAGE_SELF,则得到的是当前进程的资源信息。如果是RUSAGE_CHILDREN,则将返回当进程的终止掉的子进程和等待子进程的资源信息。当调用成功后,返回0,否则-1;
下面是一个例子:

int who = RUSAGE_SELF;
struct rusage usage;
int ret;

ret = getrusage(who, &usage);


这样你就可以用usage获取你想要的东西了;
分享到:
评论

相关推荐

    linux下内存池实现

    在Linux系统中,内存池是一种优化内存管理的技术,尤其对于频繁分配和释放小块内存的情况,内存池可以显著提升性能并减少系统开销。本文将深入探讨Linux下的内存池实现,包括其原理、优势以及如何在C或C++中进行实践...

    Linux 获取CPU和内存的大小

    以下是一些获取CPU和内存大小以及使用率的方法。 **一、CPU信息** 1. **查看CPU基本信息** 使用`lscpu`命令可以查看CPU的基本信息,包括型号、架构、核心数、线程数、主频等。 ``` lscpu ``` 2. **CPU使用率*...

    linux 共享内存详解

    ### Linux共享内存详解 #### 一、概述 在Linux及Unix环境下,进程间通信(IPC, Inter-Process Communication)是一项重要的技术,它允许不同...掌握共享内存的使用方法,对于开发高性能的多进程应用具有重要意义。

    linux内存管理实验报告

    Linux内存管理是操作系统的核心组成部分,它负责有效地分配和回收内存资源,确保系统高效稳定地运行。在本实验中,我们主要探讨了Linux虚拟内存管理的原理、动态内存操作函数的使用,以及如何检测主存使用情况。 ...

    Linux获取CPU 内存信息到文件C++简单实现

    在Linux系统下将cpu、内存等信息获取并放在同一个文件中的C++源码,需要g++才能编译

    Qt linux获取cpu使用率、内存、网络收发速度、磁盘读写速度、磁盘剩余空间

    在Linux系统中,使用Qt库开发应用程序时,可以利用各种系统接口来获取CPU使用率、内存占用、网络流量、磁盘I/O速度以及磁盘剩余空间等关键信息。以下将详细讲解如何通过Qt来实现这些功能。 1. CPU使用率: 在Linux...

    用java取得linux系统cpu、内存的实时信息

    `getMemInfo()`方法用于获取Linux系统的内存信息,包括总内存(`MemTotal`)、空闲内存(`MemFree`)、交换分区总大小(`SwapTotal`)和交换分区空闲大小(`SwapFree`)。 #### 实现原理 - **文件读取**:该方法首先打开`/...

    linux获取cpu、磁盘、内存占用率代码

    linux获取cpu、磁盘、内存占用率代码

    linux c程序获取cpu使用率及内存使用情况

    linux c程序获取cpu使用率及内存使用情况

    Linux内存性能测试工具stream

    "Linux内存性能测试工具stream"是一个专门用于评估计算机内存(RAM)性能的工具。本文将深入探讨STREAM的作用、工作原理以及如何在Linux环境中使用它。 STREAM,全称是“Simple Triad Memory Benchmark”,是由John...

    linux内存调试.pdf

    1. 获取调用栈信息的方法:Linux内核通过save_stack_trace API来获取调用栈信息。这个函数负责搜集当前的调用栈,并将它作为一个调用栈追踪返回给调用者。 2. 存储调用栈信息的位置:为了不影响每个页面的内存大小...

    linux-Linux内存加密密钥提取器

    Linux内存加密密钥提取器,通常被称为CryKeX,是一个专门针对Linux操作系统的工具,用于从内存中提取加密密钥。这个工具对于系统安全分析、漏洞研究以及密码学研究等领域具有重要意义。在Linux系统中,内存是敏感...

    linux通过共享内存实现进程之间的通信

    ### Linux通过共享内存实现进程之间的通信 #### 一、概述 共享内存作为一种高效的过程间通信(IPC)方式,允许多个进程直接访问同一段物理内存。这种方法的优势在于减少了数据复制的开销,使得进程间的数据交换更为...

    linux内存泄露检测工具

    "Linux 内存泄露检测工具" Linux 内存泄露检测是指在 Linux 环境下检测程序内存泄露的过程。内存泄露是指程序在申请内存后没有释放,导致内存的浪费和系统性能下降。检测内存泄露可以使用 Valgrind 工具,它可以...

    深入理解Linux虚拟内存管理 英文版 PDF

    深入理解Linux虚拟内存管理,ISBN:9787810777308,作者:(爱尔兰)戈尔曼著;白洛等 作者简介 · · · · · · Mel Gorman曾获得爱尔兰利马瑞克大学的计算机学士和硕士学位。他的研究领域广泛:从网页开发到摄影...

    Linux集群内存球监控系统

    【Linux集群内存球监控系统】是一个专为Linux集群设计的内存监控解决方案,旨在实时跟踪、分析和优化集群中各个节点的内存使用情况。系统通过Java开发实现,利用Java的跨平台特性,确保在不同的Linux环境下都能稳定...

    深入理解Linux虚拟内存管理

    - **与伙伴分配器接口(Interfacing with the Buddy Allocator)**:Slab分配器有时需要与传统的伙伴分配器协作,以获得更大或更小的内存块。 #### 高内存管理 对于支持超过4GB物理内存的系统,Linux引入了高内存...

    linux-内存及flash使用情况查询.pdf

    综上所述,查询Linux系统内存和Flash使用情况的方法通常分为依赖于proc文件系统的查询和不依赖于proc文件系统的查询。每种方法都有其适用的场景和优缺点。依赖于proc文件系统的查询方法操作简单,但当proc文件系统不...

    linux 32位操作系统识别3G以上内存方法

    ### Linux 32位操作系统识别3G以上内存的配置详解 在传统的理解中,32位操作系统因寻址空间限制,通常只能管理大约4GB的内存,而在实际使用中,由于地址空间分配给硬件设备等原因,能供用户程序使用的物理内存往往...

    一种Linux内存管理机制.pdf

    在Linux操作系统中,内存管理是至关重要的,它涉及到系统的稳定性和效率。Linux内存管理机制包括多种层次和策略,旨在高效地分配和回收内存,避免内存耗尽和系统崩溃。本文将深入探讨Linux内存管理模型、伙伴系统、...

Global site tag (gtag.js) - Google Analytics