编写Linux C++程序如何影响VIRT(虚存)和RES(实存/常驻内存)

2023-11-02

在Linux命令行中执行top命令,可以查询到所有进程使用的VIRT虚拟内存、RES常驻内存和共享内存SHR。

那么,什么是VIRT虚拟内存、RES常驻内存和共享内存SHR?我们编写的Linux C++程序如何影响它们呢?

查阅资料后,归纳一下。


VIRT:

1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据,以及malloc、new分配的堆空间和分配的栈空间等;

2、假如进程新申请10MB的内存,但实际只使用了1MB,那么它会增长10MB,而不是实际的1MB使用量。

3、VIRT = SWAP + RES

RES:

1、进程当前使用的内存大小,包括使用中的malloc、new分配的堆空间和分配的栈空间,但不包括swap out量;

2、包含其他进程的共享;

3、如果申请10MB的内存,实际使用1MB,它只增长1MB,与VIRT相反;

4、关于库占用内存的情况,它只统计加载的库文件所占内存大小。

5、RES = CODE + DATA

SHR:

1、除了自身进程的共享内存,也包括其他进程的共享内存;

2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

编写Linux C++程序如何影响VIRT(虚存)和RES(实存/常驻内存) 的相关文章

  • 在 VS2017 下使用 Conan 和 CMake 项目进行依赖管理

    我正在尝试使用 CMake 与 VS2017 集成为 C 设置一个开发环境 以便在 Linux x64 下进行编译 为了更好地管理依赖关系 我选择使用 Conan 但我对这个软件还很陌生 我想知道让 VS2017 识别项目依赖关系的最佳方法
  • 如何使用 zlib 制作 .zip 文件

    我正在阅读zlib的文档 它相当详细 但我读到了这一行 输出数据将位于zlib格式 与 gzip 或zip formats http www zlib net zlib how html http www zlib net zlib how
  • ASP.NET Core 与现有的 IoC 容器和环境?

    我想运行ASP NET 核心网络堆栈以及MVC在已托管现有应用程序的 Windows 服务环境中 以便为其提供前端 该应用程序使用 Autofac 来处理 DI 问题 这很好 因为它已经有一个扩展Microsoft Extensions D
  • 在 C# 中生成 HMAC-SHA1

    我正在尝试使用 C 来使用 REST API API 创建者提供了以下用于 hmac 创建的伪代码 var key1 sha1 body var key2 key1 SECRET KEY var key3 sha1 key2 var sig
  • 为什么大多数平台上没有“aligned_realloc”?

    MSVC有自己的非标准函数 aligned malloc aligned realloc and aligned free C 17和C11引入了 std aligned alloc 其结果可以是de分配有free or realloc B
  • C# 正则表达式用于查找 中具有特定结尾的链接

    我需要一个正则表达式模式来查找字符串 带有 HTML 代码 中的链接 以获取文件结尾如 gif 或 png 的链接 示例字符串 a href site com folder picture png target blank picture
  • 从 C 结构生成 C# 结构

    我有几十个 C 结构 我需要在 C 中使用它们 典型的 C 结构如下所示 typedef struct UM EVENT ULONG32 Id ULONG32 Orgin ULONG32 OperationType ULONG32 Size
  • 如何将带有自定义分配器的 std::vector 传递给需要带有 std::allocator 的函数?

    我正在使用外部库 pcl 因此我需要一个不会更改现有函数原型的解决方案 我正在使用的一个函数生成一个std vector
  • TcpClient 在异步读取期间断开连接

    我有几个关于完成 tcp 连接的问题 客户端使用 Tcp 连接到我的服务器 在接受客户端后listener BeginAcceptTcpClient ConnectionEstabilishedCallback null 我开始阅读netw
  • 从 Code::Blocks 运行程序时出现空白控制台窗口 [重复]

    这个问题在这里已经有答案了 当我尝试在 Code Blocks 中构建并运行新程序时 控制台窗口弹出空白 我必须单击退出按钮才能停止它 它对我尝试过的任何新项目 包括 Hello world 都执行此操作 奇怪的是 它对于我拥有的任何旧项目
  • 预处理后解析 C++ 源文件

    我正在尝试分析c 使用我定制的解析器的文件 写在c 在开始解析之前 我想摆脱所有 define 我希望源文件在预处理后可以编译 所以最好的方法是运行C Preprocessor在文件上 cpp myfile cpp temp cpp or
  • OpenCV 2.4.3 中的阴影去除

    我正在使用 OpenCV 2 4 3 最新版本 使用内置的视频流检测前景GMG http docs opencv org modules gpu doc video html highlight gmg gpu 3a 3aGMG GPU算法
  • 分配器感知容器和propagate_on_container_swap

    The std allocator traits模板定义了一些常量 例如propagate on container copy move assign让其他容器知道它们是否应该在复制或移动操作期间复制第二个容器的分配器 我们还有propag
  • C++11 动态线程池

    最近 我一直在尝试寻找一个用于线程并发任务的库 理想情况下 是一个在线程上调用函数的简单接口 任何时候都有 n 个线程 有些线程比其他线程完成得更快 并且到达的时间不同 首先我尝试了 Rx 它在 C 中非常棒 我还研究了 Blocks 和
  • .NET 客户端中 Google 表格中的条件格式请求

    我知道如何在 Google Sheets API 中对值和其他格式进行批量电子表格更新请求 但条件格式似乎有所不同 我已正确设置请求 AddConditionalFormatRuleRequest formatRequest new Add
  • 从 Delphi 调用 C# dll

    我用单一方法编写了 Net 3 5 dll 由Delphi exe调用 不幸的是它不起作用 步骤 1 使用以下代码创建 C 3 5 dll public class MyDllClass public static int MyDllMet
  • 使用 HTMLAgilityPack 从节点的子节点中选择所有

    我有以下代码用于获取 html 页面 将网址设置为绝对 然后将链接设置为 rel nofollow 并在新窗口 选项卡中打开 我的问题是关于将属性添加到 a s string url http www mysite com string s
  • C 中带有指针的结构的内存开销[重复]

    这个问题在这里已经有答案了 我意识到当我的结构包含指针时 它们会产生内存开销 这里有一个例子 typedef struct int num1 int num2 myStruct1 typedef struct int p int num2
  • 受限 AppDomain 中的代码访问安全异常

    Goal 我需要在权限非常有限的 AppDomain 中运行一些代码 它不应该访问任何花哨或不安全的内容 except对于我在其他地方定义的一些辅助方法 我做了什么 我正在创建一个具有所需基本权限的沙箱 AppDomain 并创建一个运行代
  • 如何使用 C# 以低分辨率形式提供高分辨率图像

    尝试使用 300dpi tif 图像在网络上显示 目前 当用户上传图像时 我正在动态创建缩略图 如果创建的页面引用宽度为 500x500px 的高分辨率图像 我可以使用相同的功能即时转换为 gif jpg 吗 将创建的 jpg 的即将分辨率

随机推荐

  • 解决 error: style attribute '@android:attr/windowEnterAnimation' not found.

    在Project gradle properties中添加 android enableAapt2 false
  • 5.3.4 因特网的路由协议(四)BGP协议

    5 3 4 因特网的路由协议 四 BGP协议 我们学习的RIP协议 5 3 2 因特网的路由协议 二 基于距离向量算法的RIP协议 和OSPF协议 5 3 3 因特网的路由协议 三 OSPF协议 都是内部网关协议 都是只能作用于一个自治系统
  • 【原创】xenomai UDD介绍与UDD用户态驱动示例

    xenomai UDD与用户态驱动示例 本文介绍xenomai UDD原理和相关代码 并给出一个基于UDD的用户态操作GPIO的示例 以及内核收发网络包与用户态操作网卡收发包的CPU耗时对比 版权声明 本文为本文为博主原创文章 转载请注明出
  • Web.xml配置详解

    1 定义头和根元素 部署描述符文件就像所有XML文件一样 必须以一个XML头开始 这个头声明可以使用的XML版本并给出文件的字符编码 DOCYTPE声明必须立即出现在此头之后 这个声明告诉服务器适用的servlet规范的版本 如2 2或2
  • 浏览器中地址框输入url地址会进行什么操作?

    一 http请求流程 http 超文本传输协议 是基于TCP协议之上的应用层协议 http的请求会进行以下操作 一 http请求流程 1 1 url域名解析成ip地址 dns解析 1 2 建立三次握手TCP连接 1 2 1 报文中SYN S
  • hashmap转红黑树的两个条件

    一个是链表长度到8 实际是要超过8 后面有补充说明 一个是数组长度到64 上图所示是判断链表长度到达8调用treeifyBin方法转换红黑树 TREEIFY THRESHOLD的值为8 TREEIFY THRESHOLD 1 7 所以bin
  • Pandas中对DataFrame列名进行重命名

    目录 1 重命名Pandas DataFrame Column 列 2 在创建Dataframe时指定列名 3 使用 list 设置全部列名 Pandas是一个用于数据分析和操作的Python库 在pandas中几乎所有的操作都围绕着Dat
  • 5款超级好用的命令行工具,提升你的开发效率!

    微信公众号公众号平凡而诗意 更多精彩内容第一时间推送 如果你是一个喜欢使用Linux系统 或者经常和Linux打交道的开发人员 那么 终端和命令行一定是接触最为频繁的工具之一 Linux不像Windows那样 有丰富的桌面应用 但是 却有很
  • JavaScript基础背诵点

    1 JavaScript是一种基于对象和事件驱动具有安全性能的脚本语言 HTML语言是网页设计中普遍采用的一种超文本标记语言 但HTML自身并不能为网页提供动态支持 也不能接受用户输入 更不能对用户请求做出反应 JavaScript可以嵌入
  • linux的crontab定时配置全过程

    今天因为业务需求 需要在服务器上配置定时任务执行数据库的sql语句 所以使用到了linux 的crontab 特此记录 分享一下自己的过程 首先呢 我们知道crontab是在linux中用于设定在某些时间可以自动执行某些命令的功能 在lin
  • Java实现定时任务

    文章目录 1 使用java util Timer 2 使用ScheduledExecutorService 3 使用Spring Task 1 使用java util Timer 这种方式的定时任务主要用到两个类 Timer 和 Timer
  • 什么样的人适合网络营销?

    最近码教授发现很多网友都在网上发问 什么样的适合做网络营销 网络营销难吗 说实话这行业来的太快 很多都没准备好就来了 说得夸张点但凡现在做这行业的基本都不缺客户都缺人 有一点经验就有可能今天4000明天去另外一公司给到8000 但真心好用的
  • 平衡二叉树平衡因子_数据结构:平衡二叉树

    1 基本概念 平衡二叉树 AVL树 或为空树 或为如下性质的二叉排序树 左右子树深度之差的绝对值不超过1 左右子树仍然为平衡二叉树 平衡因子BF 左子树深度 右子树深度 平衡二叉树每个结点的平衡因子只能是1 0 1 若其绝对值超过1 则该二
  • 计算机技能是啥,简历中的IT技能是什么意思?

    IT技能就是你会的计算机知识 从精通程度上可以分为精通 熟练 了解等 从所学内容上 把你学过的语言 用过的工具 掌握的技术都写上 按条理分类写 IT技能 比如 熟练操作计算机 熟练使用各类办公软件 如word excel等 能够使用fron
  • UniApp中如何实现APP页面横竖屏切换?

    前段时间做了一个驾考项目 该项目是使用UniApp搭建的 其中就遇到的一个需求就是横竖屏切换 用横屏来模拟驾照考试 通过查阅文档发现 在UniApp中 要实现横竖屏切换可以由以下步骤来实现 一 通过配置页面的 manifest json 文
  • 数据属性WEKA学习总结

    首先声明 我是一个菜鸟 一下文章中现出技术误导情况盖不负责 1 Weka理处的数据表格中 一个横行称为一个例实 Instance 竖行代表一个属性 Arrtibute 数据表格称为一个数据集 在weka看来 现呈了属性之间的一种关系 Rel
  • Postman发送post请求

    Postman发送post请求 在服务器开发过程中 要经常对get post接口进行测试 get请求 浏览器就可以完成 而post请求浏览器用起来有点麻烦 有的浏览器支持的不太好 个人用过火狐 还可以 今天介绍一下Postman发送post
  • Linux学习之shell bash

    一 硬件 内核 与shell 有操作系统就会离不开shell这个东西 操作系统实际上是一组软件 由于这组软件在控制整个硬件与管理系统的活动检测 如果能被随意操作那就乱套了 所以不能被非管理员用户所随意使用 但是对于用户来说也是需要体验的 用
  • 用python统计字母个数_如何用python统计字符串中字母个数?

    如何用python统计字符串中字母个数 python统计字符串中字母个数的方法 先使用这三种代码dic dict d s set s helloworld 1 d dict for x in s if x not in d keys d x
  • 编写Linux C++程序如何影响VIRT(虚存)和RES(实存/常驻内存)

    在Linux命令行中执行top命令 可以查询到所有进程使用的VIRT虚拟内存 RES常驻内存和共享内存SHR 那么 什么是VIRT虚拟内存 RES常驻内存和共享内存SHR 我们编写的Linux C 程序如何影响它们呢 查阅资料后 归纳一下