1

我正在开发一个在嵌入式 Linux (Debian Buster) 上运行的程序,我发现该程序有时会出现性能问题。经过一些调试过程,我怀疑问题可能不在我的程序中。相反,操作系统以某种方式开始进行内存交换,并且我的程序被交换到文件系统。

因此,我使用这里的代码来验证。事实证明,我的程序在大约 500 秒后占用的物理内存要少得多,并且符合假设。

现在我想找出那个进程突然占用了大量内存,但我不知道怎么做。

有没有办法继续监视系统所有进程(或前 10 个)的内存使用情况并转储到日志文件?任何工具或命令都会很好。

谢谢。

我的程序的内存使用量与总内存的比较

4

1 回答 1

1

我正在开发一个在嵌入式 Linux 上运行的程序

如果您可以指定您正在使用的嵌入式 Linux,这将很有帮助。基于此,有人可以建议一些工具。

对于 Linux,我想说,您可以使用:

top -p [PID]

您可以通过以下方式获取 PID:

ps [options]

我不确定使用命令行时是否有问题?

转储到日志文件

我认为您可以使用 grep 将终端输出转储到您可以使用 touch 命令创建的日志文件中。

于 2021-04-04T09:32:54.400 回答