我被要求查看用C ++编写的内部应用程序,并在Linux上运行,这遇到了一些困难。它定期会有大量的主要页面故障(〜200K),这会导致壁时钟运行时间增加X10+,然后在某些运行中,它将没有。

我已经尝试隔离代码的不同片段,但是在测试该代码时,我正在努力重复页面故障错误。

有人有任何建议从主要页面故障中获取更多信息/Linux的更多信息吗?我真正拥有的就是总共。

有帮助吗?

解决方案

您可能想考虑 valgrid, ,在主页上描述为:

Valgrind是用于构建动态分析工具的仪器框架。有一些Valgrind工具可以自动检测许多内存管理和线程错误,并详细介绍您的程序。您也可以使用Valgrind来构建新工具。

特别是valgrind包含一个称为的工具 , ,在手册中给出以下(解释)概述:

massif是一位堆长。它衡量程序使用的内存数量。 [..

堆分析可以帮助您减少程序使用的内存量。在具有虚拟内存的现代机器上,这提供了以下好处:

  • 它可以加快您的程序速度 - 较小的程序将与机器的缓存更好地相互作用,并避免分页。

  • 如果您的程序使用大量内存,它将减少它耗尽机器交换空间的机会。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top