Windows
Raiting:
4

Windows 7 eats up memory. Is that so bad?


I have heard on the internet a lot of angry comments that Windows 7 - sucks! You see how much memory it eats up! To prove that below are given a few screenshots, and once again everyone blames the crooked hands Hindu programmers. Let's take a look what is going on over there.

image

Let's say you purchased a computer with 8 GB of memory. But you think is it good if only one gigabyte of the memory is used and the rest is idle? Due to the release of Windows Vista and Windows 7 approach to the use of memory radically has changed, namely, the OS tries to use all available memory effectively. In particular, Windows Vista and Windows 7 have a feature called SuperFetch.

What is SuperFetch?
SuperFetch is a system service that is run inside of svchost system process. Its code is inside of DLL %SystemRoot% \System32 \Sysmain.dll. This service continuously monitors the applications that being run by a user, and what executable files and data files they access. All this information is stored in the files with app of a *.db in the directory %SystemRoot% \Prefetch. Why is it done? Because, the SuperFetch service has information about the applications that are being used very often by the user, and then in advance it pre-loads the appropriate code and data into memory, and when the user starts the application all necessary information is already in memory, and start goes much faster, because there is no need to read information from the hard drive. This is particularly noticeable when MS Office family is being used, because their functionality can be spread over hundreds of exe’s and dll’s. The SuperFetch is so smart that it can even determine the user's preferences on different days and times of the day, for example, that during the week a person works with Word and Excel, and on weekends plays Call of Duty, and therefore. Accordingly, this memory area is marked as busy, and that is displayed in the Task Manager, creating the impression of memory leaks. However, if you suddenly start any application that requires additional memory allocation, the Memory Manager quickly provides the needed space, and after the application is completed, the memory is freed and the data loaded again. If any application ends and frees the memory then the SuperFetch asks the Memory Manager to load just uploaded the code and the data. This process is done with little speed and very low priority, so the SuperFetch does not affect the work performance.
Moreover, the SuperFetch can handle the hibernation modes, sleep mode and the fast user switching. For example, if the system goes into hibernation then the SuperFetch stores hiberfil.sys code and data applications in a file, because it thinks that they will be used later. How its opinion is formed? It is very simple, the SuperFetch looks after you and what you ran after exiting from the previous hibernations, and it processes that info. Next it would assume that the next time you exit from hibernation you certainly run ICQ, and you open your favorite browser to read Umumble.

You can monitor the SuperFetch work using the Task Manager:
image

If you use Windows Vista / 7 for some time, you can see that the amount of free memory decreases. This occurs because that the SuperFetch system standard cache, Windows try to utilize the available memory to cache data from the disk. For example, if right away after Windows is loaded to run the Task Manager you will see that free memory decreases, and cached memory increases. However, over time, the SuperFetch will be loaded into the memory recently uploaded data, so the cached memory will increase and the free memory will decrease.

I hope it was interesting. Thank you for your attention.

P.S. This feature is available not only in Windows, in particular, it is in Linux, and it is called Preload.
Pirat 25 may 2014, 14:32
Vote for this post
Bring it to the Main Page
 

Comments

Leave a Reply

B
I
U
S
Help
Avaible tags
  • <b>...</b>highlighting important text on the page in bold
  • <i>..</i>highlighting important text on the page in italic
  • <u>...</u>allocated with tag <u> text shownas underlined
  • <s>...</s>allocated with tag <s> text shown as strikethrough
  • <sup>...</sup>, <sub>...</sub>text in the tag <sup> appears as a superscript, <sub> - subscript
  • <blockquote>...</blockquote>For  highlight citation, use the tag <blockquote>
  • <code lang="lang">...</code>highlighting the program code (supported by bash, cpp, cs, css, xml, html, java, javascript, lisp, lua, php, perl, python, ruby, sql, scala, text)
  • <a href="http://...">...</a>link, specify the desired Internet address in the href attribute
  • <img src="http://..." alt="text" />specify the full path of image in the src attribute