我一直试图用valgrind的massif工具和--stacks=yes
选项来衡量GNU MP使用的临时内存量。 Valgrind在整个程序中报告了0堆使用情况,只报告堆栈使用情况。
为了衡量临时内存使用情况,我尝试通过将--enable-alloca
从yes
切换到no
来重新配置GMP MP库,以将临时内存转移到堆上,而不是堆栈,但它似乎不会导致massif输出的堆栈使用数据的任何显着差异。
当我运行我的特定程序时,我的峰值物理RAM使用量是输入和输出组合的3倍,而我只是乘以整数。这使我怀疑临时/临时空间是RAM使用的很大一部分。如何在整个程序运行过程中最好地描述临时内存使用情况?