我被要求查看用C ++编写并在Linux上运行的内部应用程序,这些应用程序存在一些困难。 它会定期出现大量主要页面错误(约200k),这会导致挂钟运行时间增加x10 +,然后在某些运行时它将没有。
我尝试隔离代码的不同部分,但在测试时却很难重复出现页面错误错误。
有没有人建议在主要页面错误中从应用程序/ Linux获取更多信息?我真的只是一个。
答案 0 :(得分:3)
您可以考虑在主页上将Valgrid视为:
Valgrind是一个用于构建动态分析工具的仪器框架。 Valgrind工具可以自动检测许多内存管理和线程错误,并详细介绍您的程序。您还可以使用Valgrind构建新工具。
具体而言,Valgrind包含一个名为Massif的工具,手册中给出了以下(释义)概述:
Massif是一个堆分析器。它测量程序使用的堆内存量。 [..]
堆分析可以帮助您减少程序使用的内存量。在具有虚拟内存的现代机器上,这提供了以下好处:
它可以加快您的程序 - 较小的程序可以更好地与您的计算机缓存进行交互,并避免分页。
如果你的程序占用大量内存,它将减少耗尽机器交换空间的机会。