Как измерить объем памяти, потребляемый процессом? процесс завершается очень быстро, поэтому утилиты, такие как верх, бесполезны. Я пытался использовать массив valgrind, но он измеряет только память, выделенную через malloc/new + stack, а не статические переменные, например. - pages-as-heap не помогает, потому что он также отображает карту памяти.Использование распределенной памяти в Linux
ответ
Что-то, что может сработать для вас, это использовать скрипт, который будет запускать «ps» сразу после запуска вашей программы. Я написал следующий скрипт, который должен работать для ваших целей, просто замените переменные наверху вашими конкретными деталями. В настоящее время он запускает «netstat» в фоновом режиме (обратите внимание на символ &) и сэмплирует память 10 раз с интервалами 0,1 секунды между образцами, записывая результаты проверки памяти в файл по мере ее поступления. Я запустил это на cygwin, и он работает (минус параметры -o rss, vsz), в настоящий момент у меня нет доступа к Linux-машине, но он должен быть прост в адаптации, если по какой-то причине он не сразу Работа.
#! /bin/bash
saveFileName=saveFile.txt
userName=jacob
programName=netstat
numberOfSamples="10"
delayBetweenSamples="0.1"
saveFileName=saveFile
i="0"
$programName &
while [ $i -lt $numberOfSamples ]
do
ps -u $userName -o rss,vsz | grep $programName >> $saveFileName
i=$[$i+1]
sleep $delayBetweenSamples
done
Если ваша программа завершается так быстро, что задержка между выполнением его и работает пс в сценарии слишком долго вы могли бы рассмотреть возможность запуска вашей программы с задержкой и используя очень высокую частоту дискретизации, чтобы попытаться поймать его. Вы можете сделать это, используя «sleep» и два амперсанда, например sleep 2 && netstat
. Это будет ждать 2 секунды, а затем запустить netstat.
Если это вам не подходит, попробуйте запустить программу в отладчике. Я считаю, gdb имеет некоторые параметры отслеживания памяти, которые вы могли бы изучить.
- 1. использование памяти процессом linux
- 2. Удаление динамически распределенной памяти
- 3. Удаление динамически распределенной памяти
- 4. Использование памяти Linux
- 5. Даска ошибка распределенной памяти
- 6. Размер динамически распределенной памяти
- 7. Linux: использование памяти и освобождение памяти подкачки
- 8. C релиз динамически распределенной памяти
- 9. OpenMP для кода распределенной памяти
- 10. Использование памяти на Debian Linux
- 11. памяти в Linux
- 12. Совместное использование страниц исполняемой памяти в Linux?
- 13. контролировать использование памяти программы в Linux
- 14. Использование памяти в windows vs Linux
- 15. Использование памяти графической карты в Linux
- 16. Удаление глобальной распределенной памяти в C++
- 17. Дефрагментация динамически распределенной памяти в C++
- 18. Какова область свободной() в динамически распределенной памяти?
- 19. Значение доступа указателя в динамически распределенной памяти
- 20. Быстрый доступ к распределенной памяти в C#
- 21. Определить размер динамически распределенной памяти в C
- 22. Создание службы распределенной памяти в Scala
- 23. Ограничение памяти процесса/использование ЦП на Linux
- 24. Использование пиковой памяти для процесса linux/unix
- 25. phantomjs использование 2.0 High памяти на Linux
- 26. распределенной общей памяти или не быть?
- 27. Использование памяти на сервере Teradata SLES linux
- 28. Простой вопрос об освобождении распределенной памяти
- 29. Программа вылетает при освобождении динамически распределенной памяти
- 30. Проверьте использование основной памяти командой linux
Посмотрите здесь http://unix.stackexchange.com/questions/21836/how-to-find-out-total-memory-resource-usage-with-ps – LibertyPaul
Вы не прочитали вопрос? Я не могу использовать ps, процесс быстро заканчивается –
Эй, Джани, мой ответ ниже для вас? Мне бы очень хотелось узнать, нужна ли вам дополнительная помощь. –