C代码的内存要求
Memory requirement of C code
是否有任何方法可以知道我的C代码的内存要求?例如,我制作了int arrey[1000]
的C代码。那么,运行时会在RAM中消耗多少内存,我可以使用任何代码/工具知道它而不手动计算它?(System:Ubuntu)
编辑:就像知道我们可以给我们的时间./a.out的时间一样
您可以启动程序,同时,在其他终端窗口中,类型
top
这将为您提供有关系统上运行的内容的信息:CPU使用,内存,用户,时间...
要使用 sizeof 函数找到整个数组的大小:
cout << "bytes used: " << sizeof(arrey) << endl;
找到每个元素的模因:
cout << "byte per element: " << sizeof(int) << endl;
如果您有代码并且已将其订阅,则可以使用valgrind
。该控制台工具将打印一个堆摘要,并且随着内存失败的失败以及它们在代码上的位置丢失了多少个内存。
使用以下Linux命令获取有关系统内存使用的统计信息:
$ free
...
$ cat /proc/meminfo
...
使用 ps
命令,您可以获取由过程分配的内存页面。这不是一个完美的索引;如果您想要更精确的话,请使用内存分析器,例如 gperftools 。
只需使用cout<<sizeof(arrey);
从您自己的应用程序内部,您可以(顺序)读取/proc/self/statm
,/proc/self/maps
等。在Proc(5)MAN页面中阅读有关/proc
文件系统的更多信息。
(通过对C源代码的静态分析来界定内存消耗,通常是棘手或不可能的)
1000 * 4 = 4000,在堆栈上。
相关文章:
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值
- 为什么示例代码访问IUnknown中已删除的内存
- 是否值得降低我的代码的可读性,以便在出现内存不足错误时提供异常安全性?
- 以下代码执行哪种内存分配(动态或静态)?
- 为什么以下C++代码中存在内存泄漏?
- 使用 g++7 构建的代码在访问未对齐的内存时崩溃
- 无法找出我的代码中的内存泄漏
- 存储在哪个内存段(代码/数据段)类(员工)中?
- 带有 GDB 调试器的 VS 代码内存视图
- 我有一个线程 1:EXC_BAD_ACCESS(代码 = 1,地址 = 0x8)错误.我认为这是由于内存管理不好.我可以
- 如何防止使用 std::shared_ptr 的代码中的内存泄漏
- 这行代码中的内存是如何分配"int **v = new int*[n]; "的?
- 在我的以下代码中获取 MLE(内存限制错误).尝试解决 ROUND C 2019(问题 A-摆动行走)启动问题
- 我在 2D 数组的动态内存分配中遇到了一些奇怪的代码C++? 请解释一下这是什么?
- 为什么 valgrind 报告两个内存分配,而我的代码只请求一个?
- 如何使用 gcc 通过命令行限制C++代码的内存使用量?
- CUDA我的共享内存代码不起作用,我缺少什么
- OpenMP 到分布式内存代码
- 在CUDA中共享内存?代码是如何工作的
- 在g++中构建事务内存C++代码