Потребление общей памяти системы

Как объясняет Иван, в Maven нет официальных банок Sunacle. Однако довольно часто разработчик данного API публикует артефакт для этого API (сам API, а не их реализацию).

В случае JPA 2.0 Hibernate publish org.hibernate.javax.persistence: hibernate-jpa-2.0-api , который содержит только классы javax.persistence и не содержит специфических для Hibernate вещей.

Поэтому мой build.gradle говорит:

dependencies {
    compile group: 'org.hibernate.javax.persistence', name: 'hibernate-jpa-2.0-api', version: '1.0.1.Final'
    runtime group: 'org.hibernate', name: 'hibernate-entitymanager', version: '4.1.4.Final'
}

Что помещает выпуск API Hibernate в путь к классам компиляции, а их реализацию - в путь к классам времени выполнения.

5
задан Umair Ahmed 10 June 2009 в 07:16
поделиться

3 ответа

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

1
ответ дан 14 December 2019 в 13:45
поделиться

В современной Windows действительно нет единой правды о "общем потреблении памяти". Это, конечно, зависит от определения, но реальный вопрос заключается в том, что вы хотите сделать с ответом.

Некоторые процессы, такие как SQL-Server, имеют тенденцию использовать каждый байт памяти, к которому они могут получить доступ, если вы им позволите. Сборщик мусора .NET CLR отслеживает использование памяти и действует соответственно, пытаясь освободить больше памяти, когда она становится дефицитной.

Так, например, у вас может быть система с 8 ГБ физической памяти, из которых 90% «используется». Трудно сказать, сколько на самом деле требуется памяти. Та же система может работать на машине 4 ГБ без заметной потери производительности или каких-либо других проблем.

Если вы хотите изучить некоторые из сложностей управления памятью в Windows, загрузите "VMMap v2.0" с бывшего сайта sysinternals. Он очень подробно показывает использование памяти для каждого процесса и может помочь вам в ваших поисках.

Цитата из справки VMMaps: VMMap делит память на один из нескольких типов:

Изображение Память представляет собой исполняемый файл, например .exe или .dll. В столбце «Подробности» указан путь к файлу.

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

Поделиться Совместно используемая память может использоваться совместно с другими процессами, она взимается в соответствии с лимитом фиксации системы и обычно содержит данные, совместно используемые библиотеками DLL в различных процессах или сообщениях межпроцессного взаимодействия. API-интерфейсы Windows называют этот тип памяти разделами с поддержкой файлов подкачки.

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

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

Управляемая куча Управляемая куча представляет собой память, выделенную и используемую сборщиком мусора .NET.

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

Система Системная память - это физическая память режима ядра, связанная с процессом. Подавляющая часть системной памяти состоит из таблиц страниц процессов.

Бесплатно Свободные области памяти - это нераспределенные пространства в адресном пространстве процесса.

Теперь вам просто нужно определить, какие типы памяти вы считаете «использованными», сложите их для всех процессов, удалите несколько дубликатов и посмотрите количество ... Есть причина, по которой в диспетчере задач или других инструментах нет единого числа с надписью «Общее потребление памяти»: -)

2
ответ дан 14 December 2019 в 13:45
поделиться
Другие вопросы по тегам:

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