我有一個程序在啓動時加載一大塊數據。這需要相當長的時間,因此在運行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