了解bash(在ubuntu-linux中)中程序使用的内存
Understanding memory used by a program in bash (in ubuntu linux)
在一些编程竞赛中,问题有内存限制(如64MB或256MB)。如何理解我的程序(用C++编写)使用bash命令使用的内存?有没有办法限制程序使用的内存?如果程序使用的内存超过限制,则程序应终止。
命令顶部将为您提供所有正在运行的进程以及当前内存和交换的列表,或者如果您喜欢GUI,则可以使用系统监视器应用程序。
至于锁定内存使用,您可以始终使用ulimit-v来设置进程的最大虚拟地址范围。如果malloc和它的伙伴试图获得超过设定限制的内存,这将导致他们失败。
根据您想投入的工作量,您可以查看getrusage()、getrlimit()和setrlimit(。出于测试目的,您可以在程序开始时调用它们,也可以在家长流程中设置它们,并在孩子时将竞赛程序分叉。然后,当你提交你的程序供比赛考虑时,就不用它们了。
此外,对于进程1234,您可以查看/proc/1234/maps
或/proc/1234/smaps
或运行pmap 1234
,所有这些命令都显示pid 1234的该进程的内存映射。
尝试运行cat /proc/self/maps
以获得一个示例(运行该cat
命令的进程的内存映射)。
进程的内存映射由execve(2)初始化,并由mmap(2)syscall(等等…)更改
相关文章:
- 有没有一种方法可以测量c++程序的运行时内存使用情况
- 内存清理程序报告全局对象构造中未初始化值的使用
- 多线程程序中出现意外的内存泄漏
- C++ 程序不会因为内存而终止
- 可视化 使用 VS Code 查找C++应用程序中的内存泄漏
- C++程序什么都不做,但瓦尔格林德显示内存分配
- 应用程序内存使用量减少
- 当注入程序的内存空间时,如何读取从 0 到 0xFFFFFFFFF 的每个字节?我正在创建模式扫描仪
- 如何运行外部程序,向其传递内存地址以读取/写入?
- 在C++应用程序中使用 Tensorflow:如何释放 GPU 内存
- C++程序错误:malloc():内存损坏
- 任务管理器 - C/C++ 应用程序 - 分配的地址空间与已用内存
- OpenGL GLFW 应用程序 - 客户端内存限制
- 我们如何在ESP8266上减小程序内存上的代码大小
- shared_ptr的删除程序是否存储在自定义分配器分配的内存中?
- 正在从程序内存中分解x指令
- 随着时间的推移,我的程序越来越慢,我不知道为什么.内存泄漏
- 开发C++在运行大内存程序时崩溃
- 动态内存c++程序中的字符串错误
- 在linux上编写的一个简单的c++共享内存程序:分段错误