У меня есть программа, которая загружает большой кусок данных при запуске. Это занимает довольно много времени и поэтому создает накладные расходы при запуске Valgrind (memcheck
)/DrMemory. Поэтому, когда вы вызываете программу несколько раз с разными аргументами, это занимает значительное количество времени.Возможно ли записать состояние программы в Valgrind/DrMemory, а затем восстановить это?
Моей идеей было бы использовать fork()
сразу после фазы загрузки данных, а затем передать детей в Valgrind/DrMemory. Даже если фаза загрузки работает под Valgrind/DrMemory, служебные данные будут возникать только один раз, и все дочерние процессы fork
должны иметь возможность использовать предварительно загруженные данные.
Возможно ли записать состояние программы и объявить ее незадействованной, а затем восстановить это состояние в Valgrind (memcheck
) или DrMemory?
Примечание: Меня интересуют только платформы unixoid, ограничивая их только Linux, и все будет в порядке.
так что вы говорите, чтобы запустить его под Valgrind с самого начала и просто 'fork()'? – 0xC0000022L
@ 0xC0000022L Да, точно. Никакой специальной поддержки (помимо способности отслеживать детей) не требуется. –
отлично, это на самом деле отвечает на мой вопрос. Спасибо большое! – 0xC0000022L