【massif、top、getrusage三种内存统计方式的区别】

massif, top, 和 getrusage 是三种不同的工具和接口,用于监测和报告进程资源使用。它们之间的不同可能导致所报告的内存使用量有所差异。我们可以逐个探讨这三种工具/接口的特点和差异:

  1. massif

    • massif 是 Valgrind 套件中的一个工具,主要用于分析程序的堆内存使用。
    • 它提供了一个详细的内存使用图,可以帮助开发者找到内存使用的高峰值和内存泄漏。
    • massif 只考虑堆内存。它不会报告栈内存、内存映射或其他非堆内存的使用。
  2. top

    • top 是一个命令行工具,用于实时显示进程的状态和资源使用情况。
    • 在显示内存使用时,top 可以显示不同类型的内存统计数据,包括虚拟内存(VIRT)、共享内存(SHR)和物理内存(RES)。RES 或 “resident memory” 是进程当前正在使用的物理内存量。
    • top 考虑了进程使用的所有内存,包括堆、栈、内存映射等。
  3. getrusage

    • getrusage 是一个系统调用,用于获取进程或线程的资源使用统计信息。
    • 它可以报告多种资源的使用,其中之一是内存使用。
    • getrusage 返回的内存使用统计可能是 “maximum resident

你可能感兴趣的:(从零开始学SLAM,计算机视觉)