我有一个程序在启动时加载一大块数据。这需要相当长的时间,因此在运行Valgrind (memcheck
)/DrMemory时会产生开销。因此数次使用不同的参数调用程序时,它占用了大量的时间在Valgrind/DrMemory中记录程序状态,然后恢复它是否可行?
我的想法是使用fork()
数据加载阶段之后再用手将孩子送到Valgrind的/ DrMemory。即使加载阶段在Valgrind/DrMemory下运行,开销也只会发生一次,所有子进程都应该能够使用预加载的数据。
记录程序状态并将其声明为未知状态,然后在Valgrind(memcheck
)或DrMemory中恢复该状态是否可行?
注意:我只对unixoid平台感兴趣,仅限于Linux平台也可以。
所以你说的是从一开始就在Valgrind下运行它,并且简单地使用'fork()'? – 0xC0000022L 2013-04-15 12:59:46
@ 0xC0000022L是的,正好。没有特别的支持(超越追踪儿童的能力)是必要的。 – 2013-04-15 13:58:15
太棒了,那实际上回答了我的问题。 Спасибобольшое! – 0xC0000022L 2013-04-15 14:00:47