【问题标题】:C++ Program size in Memory内存中的 C++ 程序大小
【发布时间】:2012-05-06 10:01:59
【问题描述】:

我正在尝试让 C++ 程序打印出它自己的内存占用。

有什么好方法可以打印出 c++ 程序当前使用的内存 KB?

我需要它用于 Linux 和 Windows...所以独立于平台的东西....

谢谢你, 女士

【问题讨论】:

  • 我知道在 Java 中有像 JProfiler 这样的工具,你可以通过它来做这种事情。如果 c++ 中没有等价物,我会感到震惊
  • @user1291492 可能有内存分析器,但我认为 OP 要求一些程序化的东西。
  • 您必须自己通过定义或其他方式使其独立于平台。 C++ 不提供此功能,因此任何方法都将依赖于平台。顺便说一句,我在一次搜索中找到了关于 SO 上的 Windows 和 Linux 的两个答案
  • @MikeKwan:您可以使用自定义分配器来跟踪所有堆使用情况,但我认为跟踪堆栈/全局使用情况是不可能的。

标签: c++ memory memory-management memory-leaks


【解决方案1】:

我认为没有多平台的方式可以做到这一点。 但是你可以使用宏来做到这一点:

#ifdef __GCC__
//linux code
#else 
//windows code
#endif

这里有一个windows方法的链接:

How to get memory usage under Windows in C++

还有一个用于 linux 方法:

How to get memory usage at run time in c++?

【讨论】:

    【解决方案2】:

    看看它是如何在 LLVM 中实现的:

    For Unix

    For Windows

    相关函数为GetTotalMemoryUsage()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-28
      • 1970-01-01
      • 2012-01-26
      • 2020-04-27
      • 2010-12-12
      • 2018-06-16
      • 1970-01-01
      相关资源
      最近更新 更多