Софт-Архив

Vmmap img-1

Vmmap

Рейтинг: 4.0/5.0 (1857 проголосовавших)

Описание

VMMap скачать бесплатно

VMMap 3.12 скачать бесплатно

Стоимость:

Бесплатная

VMMap - утилита для диагностики неполадок на основе потребления системной памяти: позволяет получить визуальную карту распределения физической и виртуальной памяти.

Использование VMMap совсем несложное: после установки и запуска можно выбрать в меню один из запущенных процессов для составления карты памяти. На карте будет показана разница в объеме переданной памяти и рабочего множества, а также конкретные адреса для различных категорий используемой памяти - видеопамять, собственную память, совместно используемую память, отображаемый на память файл, хип, управляемый хип, стек и системную память.

VMMap позволяет регулярно обновлять карту распределения памяти, что позоляет составить типичные карты памяти для корректно функционирующих приложений с тем, чтобы в дальнейшем для облегчения диагностики можно было легко сравнить текущие карты с предыдущими и выявить различия.

Кроме этого, VMMap умеет работать со сценариями и позволяет экспортировать данные в формат .mmp (поддерживается только этой утилитой).

Еще одна очень полезная возможность VMMap — опция Empty Working Set (Очистить рабочее множество) в меню Refresh (Обновить): с помощью этой опции можно бороться с чрезмерным потреблением ресурсов памяти со стороны "прожорливых" приложений без завершения их работы или перезагрузки системы. Впрочем, пользоваться этой опцией следует с осторожностью и только в том случае, когда известно наверняка, как поведет после очистки памяти себя тот или иной процесс.

VMMap 3.12 скачать бесплатно

Другие статьи, обзоры программ, новости

VMMap - скачать бесплатно VMMap

VMMap 3.21

VMMap - утилита для диагностики неполадок на основе потребления системной памяти: позволяет получить визуальную карту распределения физической и виртуальной памяти.

Использование VMMap совсем несложное: после установки и запуска можно выбрать в меню один из запущенных процессов для составления карты памяти. На карте будет показана разница в объеме переданной памяти и рабочего множества, а также конкретные адреса для различных категорий используемой памяти - видеопамять, собственную память, совместно используемую память, отображаемый на память файл, хип, управляемый хип, стек и системную память.

VMMap позволяет регулярно обновлять карту распределения памяти, что позоляет составить типичные карты памяти для корректно функционирующих приложений с тем, чтобы в дальнейшем для облегчения диагностики можно было легко сравнить текущие карты с предыдущими и выявить различия.

Кроме этого, VMMap умеет работать со сценариями и позволяет экспортировать данные в формат .mmp (поддерживается только этой утилитой).

Еще одна очень полезная возможность VMMap — опция Empty Working Set (Очистить рабочее множество) в меню Refresh (Обновить): с помощью этой опции можно бороться с чрезмерным потреблением ресурсов памяти со стороны "прожорливых" приложений без завершения их работы или перезагрузки системы. Впрочем, пользоваться этой опцией следует с осторожностью и только в том случае, когда известно наверняка, как поведет после очистки памяти себя тот или иной процесс.

VMMap Download

VMMap Download

Free Download VMMap 3.21

VMMap is clearly free software to display virtual memory usage. By using this free software, you can browse the virtual memory usage specified. You can check the virtual memory usage for the specified application. The color will display virtual memory usage can be used to check the status of self-explanatory. It seems useful to optimize the application's memory consumption.

VMMap is a process virtual and physical memory analysis utility. It shows a breakdown of a process's committed virtual memory types as well as the amount of physical memory (working set) assigned by the operating system to those types. Besides graphical representations of memory usage, VMMap also shows summary information and a detailed process memory map. Powerful filtering and refresh capabilities allow you to identify the sources of process memory usage and the memory cost of application features.

Besides flexible views for analyzing live processes, VMMap supports the export of data in multiple forms, including a native format that preserves all the information so that you can load back in. It also includes command-line options that enable scripting scenarios.

VMMap is the ideal tool for developers wanting to understand and optimize their application's memory resource usage.

VMMap Download

Advanced memory usage analysis utility that offers you an overview of the resources a process or an application requires in order to run on the PC

VMMap provides an overview of the memory usage of any running process, displaying conclusive visual representations, alongside information regarding the committed resources. Designed for experienced system administrators, it enables them to assess the cost of an application as far as computer memory is concerned.

Analyze memory allocations

Upon launch, VMMap displays a list of all the active processes, enabling users to choose the one to analyze. Alternatively, a new application can be launched directly from VMMap, with or without additional arguments, and monitored afterward.

VMMap proceeds to the analysis of the memory allocations for the selected process, also retrieving data concerning its call stack. The committed virtual memory, private data bytes and the amount of physical memory Windows assigns to all memory types (also known as working set) are graphically displayed.

View memory addresses and resources

Memory types are included in a table, alongside details about the size, committed or private memory amounts and the number of allocated blocks. VMMap also retrieves addresses and their corresponding files, enabling you to identify memory usage sources much easier.

Furthermore, it can display a string list for the analyzed process and generate a graph of the address space fragmentation.

VMMap features sorting, searching and refreshing capabilities, making it possible for you to read memory allocation reports almost in real time. With a few clicks, you can empty the working set of the selected process or copy specific data to the clipboard. Complete memory usage reports can be saved in the proprietary format (MMP) and loaded at a later time or exported to CSV or text format.

A complex memory usage analyzer

VMMap can be a powerful tool in the hands of those who know how to use it to its full potential. Its capabilities can be easily extended using command-line options, which makes room for scripting and task automation.

With its help, users can generate memory maps and analyze physical and virtual memory allocations for specific processes running on the local system. It particularly comes in handy to developers who are looking for a way to optimize the memory usage of their application.

VMMap Скачать бесплатно VMMap

VMMap 3.01

VMMap 3.01 | Основное Стоимость: Бесплатно

Русский язык: Нет

Размер : 541.05 КБ

Операционные системы: 7 | 2003 | 2008 | Vista | XP

Добавлено: 2011-08-18 22:17:37

Описание VMMap 3.01 | Обзор

VMMap - утилита для диагностики неполадок на основе потребления системной памяти: позволяет получить визуальную карту распределения физической и виртуальной памяти.Использование VMMap совсем несложное: после установки и запуска можно выбрать в меню один из запущенных процессов для составления карты памяти. На карте будет показана разница в объеме переданной памяти и рабочего множества, а также конкретные адреса для различных категорий используемой памяти - видеопамять, собственную память, совместно используемую память, отображаемый на память файл, хип, управляемый хип, стек и системную память. VMMap позволяет регулярно обновлять карту распределения памяти, что позоляет составить типичные карты памяти для корректно функционирующих приложений с тем, чтобы в дальнейшем для облегчения диагностики можно было легко сравнить текущие карты с предыдущими и выявить различия.Кроме этого, VMMap умеет работать со сценариями и позволяет экспортировать данные в формат .mmp (поддерживается только этой утилитой).Еще одна очень полезная возможность VMMap — опция Empty Working Set (Очистить рабочее множество) в меню Refresh (Обновить): с помощью этой опции можно бороться с чрезмерным потреблением ресурсов памяти со стороны "прожорливых" приложений без завершения их работы или перезагрузки системы. Впрочем, пользоваться этой опцией следует с осторожностью и только в том случае, когда известно наверняка, как поведет после очистки памяти себя тот или иной процесс.

Распределения памяти

Распределения памяти.Утилита VMMap

Одним из ключевых пунктов в устранении неполадок в работе операционной системы является диагностика распределения физической и виртуальной памяти. Некоторые приложения могут потреблять слишком много ресурсов, тем самым нарушая стабильную работу системы. Отследить проблемное приложение и сократить объем потребляемой им памяти без необходимости завершения процесса или перезагрузки системы вам поможет VMMap — простая диагностическая утилита, специально созданная для анализа расхода памяти в текущих процессах. VMMap бесплатна, имеет маленький размер и не требует инсталляции. Скачать утилиту можно на официальном сайте как отдельный архив, либо в составе пакета Sysinternals Suite.

Основной задачей VMMap является отображение конкретных адресов различных типов памяти, а также существующих различий в объеме переданной памяти и рабочего множества.

Утилита поддерживает работу с командной строкой, экспорт данных работы со сценариями в собственный формат *mmp, обновление карты распределения памяти и настройку шрифтов внутри рабочего окна.

Особенностью утилиты VMMap является функция «EmptyWorking Set», то есть «Очистить рабочее множество», при помощи которой можно снижать чрезмерное потребление памяти не в меру требовательными приложениями.

Вкратце рассмотрим работу утилиты на деле.

При первом запуске VMMap предложит согласиться с условиями использования, после чего одновременно с главным окном утилиты откроется дополнительное диалоговое окошко, в котором необходимо выбрать интересующий процесс.

Возьмем для примера процесс opera.exe. Обратите внимание на средний блок с цветными полосками. Здесь вы можете видеть список типов потребляемой процессом памяти: Image, Mapped file, Shareable и так далее.

Выделенная приложением память обозначена желтым цветом (Private Data), остальное распределяется между исполняемыми файлами, библиотеками и другими системными объектами.

Взять, к примеру, тип Image. Данный тип памяти отводится под исполняемые exe-файлы и библиотеки (dll).

Не трудно заметить, что помимо использующего часть памяти исполняемого файла opera.exe, в списке присутствуют множество замапленых на память приложения библиотек dll, среди которых далеко не последнее место занимает shell32.dll.

Аналогичным образом можно просматривать данные потоков, свободных блоков памяти, замапленных файлов (mapped files) и т.д.

Собственно, вся работа VMMap сводится к отображению подробной информации об используемой памяти.

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

Насколько легко определить какие библиотеки загружаются в память вместе с приложением можно видеть из приведенного примера.

Что касается функции «EmptyWorking Set», то ей следует пользоваться по возможности осторожно, особенно если вы не знаете, как поведет себя процесс после очистки памяти. Впрочем, особого вреда работающему приложению это не нанесет.

Хотите получать новости и полезные материалы на почту?

Сделайте три простых шага внизу и плучайте новости первым:

VMMap вам в помощь

Мои любимые книги: VMMap вам в помощь

Недавно я начал тут новую серию постов про тулзы, помогающие в отладке и анализе приложений. Начал я со статьи Application verifier - простая бесплатная мощь. а это вторая статья из этой серии.

Сегодня речь пойдёт не про отладку, а про анализ приложений. Сегодня я расскажу про VMMap - одну из программ из комплекта Sysinternals от Марка Русиновича.

VMMap - это очень простая тулза, выполняющая ровно одну задачу - анализ расхода памяти в процессе.

Вы думаете, что знаете всё про то, куда расходуется память в вашей программе?

Тогда попробуйте сейчас отложить чтение, задуматься и ответить на простой вопрос - куда и как расходуется память в вашем приложении?

Уверен, вы будете думать про собственные выделения памяти, а также, возможно, про потоки, если читали мою недавнюю статью Потоки и память. Но учтёте ли вы всё?

Так вот, проще не думать, а запустить VMMap и посмотреть. Удивительно, но в большинстве случаев оказывается, что ваша собственная выделенная память в вашем же приложении - это меньше половины от общего расхода памяти. А во многих случаях это вообще 10-20%.

Итак, куда же расходуется память в приложении?

Давайте выберем распространенное приложение и проанализируем его. Возьмем для примера Skype и откроем его в VMMap.

Посмотрите на скриншот.

Все картинки кликабельны.

Итак, в списке сверху мы видим общую информацию по типам выделенной памяти. Там есть: Image, Private, Shareable, Mapped file, Heap, Stack, System, а также можно увидеть свободную память и максимальный кусок свободной памяти.

В строке Total видно, что всего процесс зарезервировал для себя 214Мб памяти. При этом закомитил из них 125Мб, а Working Set (реально используемая память) у него 55.9Мб.

Как видите, в процессе использовано 7 типов памяти. При этом память, выделенная приложением - это Private (желтая на графиках) и она занимает всего около 25% от всей памяти. А что же остальное?

На первом месте по расходу - Image (фиолетовый цвет). Могу вас уверить, что в большинстве приложений Image на первом месте. Только в очень требовательных к памяти приложениях (игры, обработка видео, видео проигрыватели) Image может быть на втором месте.

Выделим строку Image и посмотрим, что именно “съедает” память.

Image - это память, отданная под dll и exe-файлы. Каждая dll должна быть замаплена на память приложения, так что хоть она и не будет грузиться с диска или копироваться в памяти, но она отъест некоторый кусок виртуальной памяти приложения. Также многие dll выделяют внутри себя память, так что они еще и расходуют Working Set приложения.

В Image секции с большим отрывом лидирует Skype.exe - файл аж 23Мб и весь загружен в память. Также можно увидеть, что shell32.dll, ntdll.dll, x86_microsoft… и ntdll.dll для 64 битов занимают еще больше 15Мб в памяти в больше 2Мб в Working set.

Для меня до сих пор остается загадкой shell32.dll. Это одна из самых крупных dll в Windows и при этом она загружена во многие приложения. Причем большинство приложений оттуда используют 1-2 функции (SHGetFolder, например). При этом сам факт загрузки этой dll сразу отнимает 13Мб Virtual Memory и 200-400К Working Set. Этакий скрытый Windows-монстр, порождение плохого дизайна Windows API. К счастью в новых версиях Windows некоторые функции из shell32.dll вынесены в отдельные небольшие dll - уже прогресс.

Далее мы можем посмотреть mapped files:

Тут очень занятные цифры. У нас почти 14Мб виртуальной памяти и около 1Мб Working Set заняты замапленными системными файлами. Удивительно, но большинство даже простейших приложений имеют эти замапленные файлы. Попробуйте запустити hello world и вы это увидите.

Теперь давайте посмотрим стэки потоков.

Мы видим кучу потоков, некоторые из которых выделяют себе аж 1Мб на стэк. Всего же на них тратится 33Мб виртуальной памяти и 748Кб Working Set. Огромный разрыв между виртуальной памятью и Working Set говорит, что для стэков зарезервировано слишком много памяти. Им столько не нужно.

Зачем нужна эта информация? Например, по идентификатору потока в WinDBG или в Process Explorer можно посмотреть колстэки и понять, что это за поток, чтобы уменьшить ему размер стэка в коде при создании.

Ну и посмотрим еще свободные блоки памяти.

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

Например, это окно позволяет находить проблемы с base address у dll-файлов. Если для dll прописать плохой base address, то она может загрузиться куда-нибудь в память посередине процесса и разбить его адресное пространство пополам.

Это приводит к тому, что у процесса свободно почти 2Гб памяти, а даже 1Гб одним большим блоком выделить нельзя, т.к. ровно посередине загрузилась dll и разбила 2 Гб на 2 куска по 1Гб. К сожалению такое встречается нередко.

Например, на моей Windows7 и IE и Firefox показывают максимальный единый блок памяти около 1.3Гб, хотя свободно 1.8Гб. Как раз из-за того, что одна из dll влезла в середину адресного пространства.

Так что будьте очень осторожны, прописывая base address и проверяйте что получилось на практике.

Вот, в общем-то и всё про VMMap. Тулза предельно простая, но дает полную информацию про используемую память.

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

А информация о загруженных dll должна стать отправной точкой в анализе exe файла через тулзу Dependencies Viewer или еще какую.

Так что VMMap - это только начало анализа. Её можно использовать для того, чтобы выявить проблему. А детально с ней разобраться и вылечить - это задачи других программ.

А про другие полезные программы я тоже расскажу со временем, оставайтесь на линии

Похожие записи:

Directory Opus news: New guide: How to find components causing memory leaks

16 November 2010 New guide: How to find components causing memory leaks

(This guide, and others, can also been found in the Opus FAQs at the Directory Opus Resource Centre forums.)

Programs like Explorer and Directory Opus are at the mercy of the third-party components they load. This includes things like shell extensions and video codecs which may be added by other programs you have installed.

When those third-party components go wrong they can cause crashes or memory leaks within the programs they are loaded into. This post discusses a way to track down components causing memory leaks.

What is a memory leak?

A memory leak is when a program allocates memory and then doesn't give it back when it is no longer needed. The leaked memory is wasted because the program itself is no longer using it but nothing else can use it either until the program exits.

High memory usage does not always mean there is a memory leak. If you are doing something that inherently needs a lot of memory, and that memory is given back when the operation completes, then that is not a memory leak.

Memory leaks are usually unbounded. If you keep doing something that triggers a leak then the memory usage usually keeps increasing. (If the memory usage only increases the first time you do something, and the increase isn't huge, then it's probably just a component allocating a cache which it will re-use to speed up future operations. Such caches are often returned after a few minutes of inactivity, although it depends on the component.)

Using VMMap to find memory leaks

If you look using Task Manager it might say explorer.exe or dopus.exe are using a lot of memory but it won't tell you where the blame lies. There could be a bug in the programs themselves but it's almost always a third-party component. Here's how to find out which one.

Download the free VMMap tool from Microsoft/SysInternals and extract its zip file somewhere. VMMap is a low-level debugging tool but don't worry, what we're going to do with it is quite simple.

  1. Double-click VMMap.exe and it should open a window with a list of running processes.

At the top of that window, click the Launch and trace a new process tab, then enter the path to dopus.exe, like below.

Do not click OK yet.

  • Before you click OK you need to exit Directory Opus (dopus.exe) so that it can be re-started by VMMap. (This will allow VMMap to keep a record of the memory allocations made by the new dopus.exe.)

    Simply closing all Opus windows will not exit it by default. Use the Exit option on Opus's tray-icon menu. (See also: How to Exit Directory Opus .)

  • Now click OK in VMMap; it should re-start Opus.

    VMMap will also display a colourful list of numbers but don't worry about understanding them. )

    Keep VMMap and Opus running; do not close either of them from now on.

  • Use Directory Opus in a way which triggers your memory leak.

    Ideally, trigger the leak several times so it is large and easy to find. (Make it leak at least 10MB, or more if you can, so it stands out from other memory allocations.)

    Use the standard Task Manager to keep an eye on dopus.exe's memory usage so you can tell when you've triggered the leak.

  • Return to VMMap and push F5 (or click View -> Refresh ) to make it refresh.

  • Click Trace. at the bottom of the VMMap window:

  • In the Trace window which appears, sort by the Bytes column and scroll to the top of the list.

    It should look something like this where the first item has a much larger Bytes value than the others:

    If the first item doesn't have a relatively large Bytes value then you may need to trigger the leak more times (keep VMMap running and remember to Refresh it each time you come back to it), or you may be incorrect about there being a leak at all. Otherwise, continue.

  • Select the first item and then click Stack. at the bottom of the Trace window.

  • You will now see a list of DLLs (and dopus.exe) involved when the memory was allocated, like this:

    The component causing the memory leak is usually the first non-Windows DLL in the list. You can usually ignore the ones whose paths start with C:\Windows (e.g. ntdll.dll and user32.dll).

    In the example above, the memory leak was caused by LeakyShellExtension.dll which, as you can guess, is a shell extension I wrote for this guide which intentionally leaks memory. I wrote it to leak about 10MB each time a file was right-clicked and then right-clicked files a few times to make it leak about 70MB in total.

  • Once you have a suspicious DLL the name and path are often enough to identify what it belongs to. If not, find the DLL on disk, right-click it, select Properties and then go to the Details tab. That will usually contain information about who made it and what it's a part of.

    Sometimes it's worth looking at some of the other DLLs in the list, too.

    Once you know what the DLL belongs to you can try uninstalling (or updating) it to see if the leak goes away.

    If the leak goes away then you know who to report the bug to.

    If the leak remains, repeat the process and see which DLLs are indicated. If it's the same DLL again then you know that you didn't successfully uninstall it. If it's another DLL, maybe the first one was innocent and can be reinstalled.