Что такое Рабочий набор?

Мы используем конфигурационные файлы в стиле ini. Мы используем библиотеку Nini для управления ими. Нини делает его очень простым в использовании. Nini изначально был для .NET, но был перенесен на другие платформы с использованием Mono.

15
задан Nick Haddad 22 May 2009 в 03:30
поделиться

5 ответов

The "working set" is short hand for "parts of memory that the current algorithm is using" and is determined by which parts of memory the CPU just happens to access. It is totally automatic to you. If you are processing an array and storing the results in a table, the array and the table are your working set.

This is discussed because the CPU will automatically store accessed memory in cache, close to the processor. The working set is a nice way to describe the memory you want stored. If it is small enough, it can all fit in the cache and your algorithm will run very fast. On the OS level, the kernel has to tell the CPU where to find the physical memory your application is using (resolving virtual addresses) every time you access a new page (typically 4k in size) so also you want to avoid that hit as much as possible.

See What Every Programmer Should Know About Memory - PDF for graphs of algorithm performance vs size of working set (around page 23) and lots of other interesting info.

Basically - write your code to access the smallest amount of memory possible (i.e classes are small, not too many of them), and try to ensure tight loops run on a very very small subset of that memory.

18
ответ дан 1 December 2019 в 02:20
поделиться

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

0
ответ дан 1 December 2019 в 02:20
поделиться

"Рабочий набор" - неформальный термин, означающий память, к которой "часто" (для некоторого определения "часто") обращается приложение или набор приложений. Приложения также могут выделять память, к которой они обращаются нечасто (не чаще одного раза в несколько десятков секунд, возможно, даже не один раз в час); это будет вне рабочего набора.

Примером может быть, если у вас есть две Firefox Windows, свернутая, на которую вы не смотрели в течение нескольких часов, и открытая, которую вы просматриваете прямо сейчас. Память, используемая для хранения данных, связанных с открытым окном, будет в рабочем наборе; память, используемая для хранения данных, связанных с окном, которое не открыто и которое вы не просматривали в течение нескольких часов, не входит в рабочий набор.

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

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

5
ответ дан 1 December 2019 в 02:20
поделиться

Roughly, the working set is the areas of memory in active use. http://en.wikipedia.org/wiki/Working_set

6
ответ дан 1 December 2019 в 02:20
поделиться

Рабочий набор - это набор страниц, которые физически находятся в память в любой момент. Хотя рабочий набор, если он указан и отображается в килобайтах, наименьший рабочий набор, который вы можете иметь, составляет 4 КБ (8 КБ на Itanium), так как это размер страницы в Windows.

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

Если вы используете приложение .NET, вы можете наблюдать, как рабочий набор сокращается, глядя на процесс на вкладке процессов диспетчера задач, а затем свернуть приложение. Его рабочий набор резко сокращается, поскольку Windows пересылает его в файл подкачки (поскольку предполагается, что процесс не так "работает").

в столбце «Процессы» диспетчера задач.

Если вы запускаете приложение .NET, вы можете наблюдать за сокращением рабочего набора, наблюдая за процессом на вкладке процессов диспетчера задач, а затем свернув приложение. Его рабочий набор резко сокращается, поскольку Windows пересылает его в файл подкачки (поскольку предполагается, что процесс не так "работает").

в столбце «Процессы» диспетчера задач.

Если вы запускаете приложение .NET, вы можете наблюдать за сокращением рабочего набора, наблюдая за процессом на вкладке процессов диспетчера задач, а затем свернув приложение. Его рабочий набор резко сокращается, поскольку Windows пересылает его в файл подкачки (поскольку предполагается, что процесс не так "работает").

0
ответ дан 1 December 2019 в 02:20
поделиться
Другие вопросы по тегам:

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