Как Вы добираетесь, сколько памяти программа использует?

Самый Быстрый! = Лучшая практика!

, Например, (int) является почти наверняка самым быстрым, потому что это - оператор, а не вызов функции, но это будет только работать в определенных ситуациях.

лучшая практика должна использовать большинство читаемый код, который негативно не повлияет на Вашу производительность, и 99 раз из 100, целочисленное преобразование не определяет эффективность Вашего приложения. Если это, используйте самое соответствующее, самое узкое преобразование, Вы можете. Иногда это (int). Иногда это TryParse(). Иногда это Convert.ToInt32().

5
задан Peter Mortensen 18 October 2009 в 18:47
поделиться

9 ответов

Запустить программу в одной оболочке. Откройте другую оболочку и выполните команду «top». он перечислит запущенные процессы и поместит много памяти, которую они потребляют. я думаю, вы можете опросить / proc / yourprocessid / stat, чтобы узнать, сколько памяти он использует с течением времени.

5
ответ дан 18 December 2019 в 08:29
поделиться

В Linux попробуйте valgrind . Это потрясающий инструмент, в котором слишком много функций, чтобы простые смертные могли полностью понять. Взгляните на valgrind массив .

4
ответ дан 18 December 2019 в 08:29
поделиться

Диспетчер задач Windows может показать использование памяти каждым процессом. Думаю, вы могли бы использовать вместо этого Valgrind, но я не вижу в этом смысла. В Linux используйте Valgrind или ps.

3
ответ дан 18 December 2019 в 08:29
поделиться

В Windows вы можете использовать функцию GetProcessMemoryInfo .

Вот пример того, как его использовать:
Сбор информации об использовании памяти для процесса

2
ответ дан 18 December 2019 в 08:29
поделиться

Зависит от вашей операционной системы - вы ожидаете, что у вас будут инструменты, которые сообщат вам, сколько памяти потребляется при работе приложений.

Попытка вывести ответ путем проверки кода будет очень сложной , запускайте приложения, используйте диагностику своей платформы.

0
ответ дан 18 December 2019 в 08:29
поделиться

В Windows я нашел Монитор адресного пространства очень полезным, особенно для того, чтобы посмотреть, насколько фрагментирована ваша память.

0
ответ дан 18 December 2019 в 08:29
поделиться

В зависимости от размера программ это может быть практически невозможно.

Если они не очень большие, вы можете увидеть, сколько памяти они выделяют; например, int займет 4 байта, char - 1 байт и т. д. Сборка очень прозрачна в том, сколько памяти она использует, даже на машине x86. Cpp почти так же прозрачен, если вы точно отслеживаете создание объекта и уничтожение / выделение памяти.

Если программа огромна, вам потребуется использовать специальные инструменты для отслеживания / профилирования использования памяти, например GlowCode ( http://www.glowcode.com/summary.htm ).

0
ответ дан 18 December 2019 в 08:29
поделиться

В Windows вы можете использовать Системный монитор.

Использование системного монитора

  • Запустите системный монитор из меню Пуск / Администрирование / Производительность

  • Если вы хотите запустить ведение журнала:

  • Выберите журнал производительности и предупреждение> параметр Текущий журнал в левой части браузера.

  • Выберите новые настройки журнала.

  • Дайте журналу подходящее имя, например, performance_Server for Server

  • Появится одно меню . На вкладках «Общие» нажмите кнопку «Добавить» и выберите процесс, который вы хотите отслеживать. (Измените объект производительности на процесс, для «выбрать счетчики из списка» выберите «личные байты», для «выбрать экземпляры из списка» выберите процесс, который вы хотите отслеживать.) После этого нажмите «Добавить и закрыть». Теперь измените интервал в соответствии с требованиями тестового примера. Теперь перейдите на вкладку «файлы журнала» и измените тип файла журнала на формат csv или tsv. Теперь примените и нажмите OK.

  • Если вы хотите начать / остановить регистрацию:

  • Выберите конкретный журнал, который вы хотите запустить и остановить.

  • На панели инструментов выше вы увидите кнопки запуска и остановки.

  • Если вы хотите проверить содержимое файла журнала:

  • Щелкните Параметры / Данные из…

  • Выберите файл журнала для просмотра, щелкните OK

  • Перейти к экрану диаграммы (Просмотр / Диаграмма)

  • Щелкните Изменить / Добавить в диаграмму

  • Добавьте необходимые элементы в диаграмму. (Если необходимо проверить утечку памяти, вам необходимо просмотреть PrivateBytes процессов и их _Total)

  • Считайте значения из диаграммы (минимальные и максимальные значения отображаются в нижней части диаграммы)

  • Если вы хотите отслеживать передачу данных по сети:

5
ответ дан 18 December 2019 в 08:29
поделиться

В Windows для этого можно использовать Системный монитор Microsoft. Пуск, Беги, "перфмон". Этот инструмент будет сообщать всевозможные статистические данные о процессах и предоставлять вам графики. В общем, вам будет интересно рассказать о «Частном рабочем наборе». Это покажет вам, сколько памяти ваш процесс зарезервировал для собственного использования.

Если вы хотите просто использовать свою кучу, и вы хотите сделать это программно, вам следует заглянуть в CRT Debug Heap ].

Я не уверен насчет Linux, извините.

0
ответ дан 18 December 2019 в 08:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: