Do you play games with pagefile on or off?


  

125 members have voted

  1. 1. Do you play games with pagefile on or off?



Recommended Posts

When programming in C (simple programs), when malloc failed to reserve memory for say a dynamic struct, it would say the program has a error cant continue bla bla bla.......but the program is still running in the background even though that dynamic struct could never be reserved because (in this case) a illegal memory reservation..

Yes, the program will still keep running (unless it was poorly written and crashed), but it's not using more memory than it was before calling malloc.

Let's say the program is using 1MB of memory, and that the system has 512MB free.

The program then calls malloc and tries to allocate 1GB of memory. Since the system only has 512MB free, Windows can't honor this request. It does not allocate any memory, and instead returns an error to the program.

The program will then still only be using 1MB of memory, and the system will still have 512MB free. There is no problem.

Windows will not give it any memory unless the full amount it asks for is actually available. This is in contrast to certain competing operating systems that support overcommitment and will let you allocate memory that isn't necessarily available. This is not possible on Windows. When you allocate memory on Windows, the OS reserves that amount and guarantees that it will be available when you try to access it. Even if the program never uses it, the entire amount is always reserved. This guarantee is absolute.

To prevent this from becoming a performance problem, Windows doesn't actually assign any specific storage (such as pages in physical RAM or in the page file) to the allocation. It only reserves the amount. Imagine that a system has 2GB of free RAM and a 2GB page file. This means that Windows can reserve up to 4GB of memory.

If you then run two programs that allocate 1GB each, they will both succeed, and Windows will reserve 2GB of memory. There is now 2GB left. Let's say neither program tries to actually access the memory, let's say they pre-allocated it for some future use.

We then run a third program that allocates 1.5GB of memory and actually uses it. What Windows will go and do then, is place this 1.5GB in physical RAM. It can do this because even though the first two programs have allocated 2GB, they aren't actually using it. If they later tried to, everything would still be okay, because even though there is only 0.5GB of physical RAM available, there is 2GB of space in the page file. Everyone's happy.

Now imagine if you had disabled the page file so that the only thing available was 2GB of RAM. The first two programs would end up reserving all of this even though they aren't using it. When we then run the third program, it will fail. This is the reason why you generally want to have a page file enabled, although how big an issue this is depends on how much RAM the machine has and the applications and games you run.

Operating systems that allow overcommitment deal with this problem differently. In the example without a page file, the third program wouldn't necessarily fail. Instead, the OS makes assumptions that the first two programs won't be using all the memory they have allocated. It then goes ahead and gives 1.5GB to the third, even though there technically isn't enough memory available if all three programs actually tried to use it. This of course results in a different problem. It now has to go and tell one of the two programs that "oops, the memory you're in the middle of using isn't available after all," or forcefully terminate one of the programs to satisfy the other two.

I'm not going to say anything about which design is better, I'm just pointing out the architectural differences. Maybe you're only familiar with the last example, which again is not how Windows works.

Sorry if this is turning into a complete derail.

Rules for turning the page file on or off.

Turning it off: This displays that the user has no understanding of what the page file is, or what the page files does, and how applications interact with it.

Leaving it on: Either the user doesn't care, doesn't want to be bothered with such things, or has educated themselves on the above lack of understanding the above "Turning it off:" users.

Rules for turning the page file on or off.

Turning it off: This displays that the user has no understanding of what the page file is, or what the page files does, and how applications interact with it.

There is one situation where I will turn the page file off: When I am trying to split a volume and need to condense the space first. The page file is invariably sitting in the middle of the free space on the drive, and Disk Management won't let you shrink the drive beyond where the page file is sitting. You would THINK that Microsoft would have taken this into account and given it a way of moving the page file, but they didn't.

There is one situation where I will turn the page file off: When I am trying to split a volume and need to condense the space first. The page file is invariably sitting in the middle of the free space on the drive, and Disk Management won't let you shrink the drive beyond where the page file is sitting. You would THINK that Microsoft would have taken this into account and given it a way of moving the page file, but they didn't.

I would say that it's such a fringe case that it's not worth having to deal with the hassle of having to redesign the OS to allow page files to be dynamically managed. In order to move it, you would after all have to disable all disk paging, then create a new page file. I suppose a feature could be designed that moved it when you rebooted, but again it's a little too niche.

Anyone know why we even need a pagefile with modern O/S's?

Because RAM is finite.

Yes, the program will still keep running (unless it was poorly written and crashed), but it's not using more memory than it was before calling malloc.

Let's say the program is using 1MB of memory, and that the system has 512MB free.

The program then calls malloc and tries to allocate 1GB of memory. Since the system only has 512MB free, Windows can't honor this request. It does not allocate any memory, and instead returns an error to the program.

The program will then still only be using 1MB of memory, and the system will still have 512MB free. There is no problem.

Analyzing this example:

Process 1 of that program (program A) uses 1MB of memory and requests to allocate a additional 511MB on a 512MB RAM PC. This leaves the OS (this is on a theory level) with 0MB of memory.

What if, while running process 1, we open another process (2) of program A that once again itself uses 1MB of memory? (With pagefile disabled) Process 1 is currently using all 512MB so as soon as we try to open process 2, how can the OS itself deliver a "fail memory" if it has no memory itself to give the message?

Im not trying to be a ******* hdood, just trying to fully understand :) Thank you for your explainations :)

I've always compared ram to a glass of water. Taller the glass the more water it can hold. If the glass gets too full because it isn't big enough, the water will start to overflow over the top into the "Page file" which catch all the excess water the glass can't hold.

Now if you have 6 or 8 gigs of ram then you have a pretty tall glass and the chance of it over flowing are slim. If it ever did over flow and you had the page file turned off, there would be no where for the excess water to go. Now that's just one example and I'm sure the page file is used for more than just spillage. It seems to me that's the big one.

If you only have 256 megs of ram, by the time you boot windows and load 1 or 2 applications the glass is already over flowing into the page file which is 100x slower than ram. Thus the slow down. Get more ram, which gives you a bigger glass, now it can hold more and isn't as likely to over flow as much, thus the computer is faster.

Process 1 of that program (program A) uses 1MB of memory and requests to allocate a additional 511MB on a 512MB RAM PC. This leaves the OS (this is on a theory level) with 0MB of memory.

Well, in that example, the OS would essentially be rendered useless or crash. It's a little too theoretical though. In reality, the OS will do its best to keep enough memory reserved to maintain critical services.

Certain running programs might still go a little wonky as new allocations are denied, but the OS itself will remain responsive enough to let you close programs to reclaim memory.

The biggest problem with your argument is that having a page file does not resolve this problem, it simply delays it. After all, you will run into the exact same situation when you run out of both RAM and page file space. The only actual solution is for the OS to keep some memory reserved at all times for internal use, something Windows does to a very small extent. It only has to be enough to keep the OS from crashing.

I did turn it off for a while, but with only 4GB RAM, and games like Crysis, it was not long until I was experiencing regular crashes, so turned it back on

If I ever get 8GB I might try it again, but I agree, I didnt see any speed increase while it was off

When I had an argument about this a long time ago (with a guy who was a broken record...), I tried getting my system to crash, but it simple did not crash.

If your system crashes, there is something wrong with it.

Steps to the the most easy way to use up all your 4GB+ memory,

1. Make sure you have W7, XP does not do this

2. Connect a USB2.0 HD

3. Check disk for errors (check "Automatically Fix File System Errors" and "Scan for and attempt recovery of bad sectors")

This will make explorer use up all your available memory.

Notice how it doesn't crash, just turns off DWM to free up more RAM...

The PF is just additional slow memory. If you need it, you need more RAM (and maybe a clean-boot and a virus scan)...

/Thread

When I had an argument about this a long time ago (with a guy who was a broken record...), I tried getting my system to crash, but it simple did not crash.

If your system crashes, there is something wrong with it.

Steps to the the most easy way to use up all your 4GB+ memory,

1. Make sure you have W7, XP does not do this

2. Connect a USB2.0 HD

3. Check disk for errors (check "Automatically Fix File System Errors" and "Scan for and attempt recovery of bad sectors")

This will make explorer use up all your available memory.

Notice how it doesn't crash, just turns off DWM to free up more RAM...

The PF is just additional slow memory. If you need it, you need more RAM (and maybe a clean-boot and a virus scan)...

/Thread

34514b5b4b8f83919.gif

and no, that's not a serious clap.

When I had an argument about this a long time ago (with a guy who was a broken record...), I tried getting my system to crash, but it simple did not crash.

If your system crashes, there is something wrong with it.

Steps to the the most easy way to use up all your 4GB+ memory,

1. Make sure you have W7, XP does not do this

2. Connect a USB2.0 HD

3. Check disk for errors (check "Automatically Fix File System Errors" and "Scan for and attempt recovery of bad sectors")

This will make explorer use up all your available memory.

Notice how it doesn't crash, just turns off DWM to free up more RAM...

The PF is just additional slow memory. If you need it, you need more RAM (and maybe a clean-boot and a virus scan)...

/Thread

sick.gif

I've always compared ram to a glass of water. Taller the glass the more water it can hold. If the glass gets too full because it isn't big enough, the water will start to overflow over the top into the "Page file" which catch all the excess water the glass can't hold.

Now if you have 6 or 8 gigs of ram then you have a pretty tall glass and the chance of it over flowing are slim. If it ever did over flow and you had the page file turned off, there would be no where for the excess water to go. Now that's just one example and I'm sure the page file is used for more than just spillage. It seems to me that's the big one.

If you only have 256 megs of ram, by the time you boot windows and load 1 or 2 applications the glass is already over flowing into the page file which is 100x slower than ram. Thus the slow down. Get more ram, which gives you a bigger glass, now it can hold more and isn't as likely to over flow as much, thus the computer is faster.

So having no page file means there is no way to catch excessive water so where does it go? (according to your example)

Well, in that example, the OS would essentially be rendered useless or crash. It's a little too theoretical though. In reality, the OS will do its best to keep enough memory reserved to maintain critical services.

Certain running programs might still go a little wonky as new allocations are denied, but the OS itself will remain responsive enough to let you close programs to reclaim memory.

The biggest problem with your argument is that having a page file does not resolve this problem, it simply delays it. After all, you will run into the exact same situation when you run out of both RAM and page file space. The only actual solution is for the OS to keep some memory reserved at all times for internal use, something Windows does to a very small extent. It only has to be enough to keep the OS from crashing.

OK thank you :)

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Hi all. I have a seven year old Acer laptop which according to Acer website can't receive the new MS updates. This device lives in my bedroom and is purely a consumption device. No gaming, no nothing. I have followed online instructions and turned off secure boot which now gives me a green tick in W11 Security. Now, I have MWB Premium now for several years and I'm reasonably careful with my online activity with this laptop. I'm also not a gamer in any way so I'm not asking much from this laptop. Given that, am I safe to continue using this device given I've turned off secure boot? That's it, that's my question.
    • finally [Taskbar] Taskbar customization just got easier. As we continue to make improvements to the Taskbar experience mentioned last month, we've introduced a dedicated Taskbar Size setting, making it simpler to find, understand, and personalize your ideal taskbar experience.
    • Let me get this straight... It was a web interface for Gmail, so if privacy at Google wasn't concerning enough you'd be going through two companies. And their big feature was the very thing that would make people consider dumping Gmail.
    • Microsoft's fast coding model MAI-Code-1-Flash comes to Copilot Business and Enterprise by Karthik Mudaliar Microsoft’s recently announced MAI-Code-1-Flash model is now generally available to GitHub Copilot Business and Copilot Enterprise customers. With this support, organizations can have more centralized policy controls and billing while finally being able to use Microsoft’s lightweight, first-party coding model. According to GitHub’s announcement, Business and Enterprise plan administrators must enable the MAI-Code-1-Flash policy in Copilot settings before developers can access the model. Microsoft says that MAI-Code-1-Flash is for fast, iterative coding work rather than the most demanding architectural or debugging tasks. GitHub’s official model comparison page says that the model is great for "general-purpose coding and writing," while it excels at fast, accurate code completions and explanations Microsoft introduced MAI-Code-1-Flash on June 2 as part of a broader collection of internally developed MAI models. GitHub subsequently expanded support to Copilot CLI, the Copilot cloud agent, GitHub.com chat, GitHub Mobile, Visual Studio, JetBrains IDEs, Eclipse, and Xcode, but said support for managed Business and Enterprise customers was still on the way. In Microsoft’s own benchmark testing, MAI-Code-1-Flash scored 51.2% on SWE-Bench Pro, compared with 35.2% for Anthropic’s Claude Haiku 4.5. Microsoft also claimed that the model used up to 60% fewer tokens on SWE-Bench Verified. Do note that these are vendor-run results rather than independent measurements. The model is billed at provider list pricing under GitHub’s usage-based system. GitHub currently lists MAI-Code-1-Flash at $0.75 per million input tokens, $0.075 per million cached input tokens, and $4.50 per million output tokens. For organizations, the main incentive to use MAI-Code-1-Flash is likely to be efficiency rather than maximum capability. A smaller model that responds quickly and limits unnecessary output is quite useful for repetitive agent tasks at scale, especially after GitHub Copilot’s move toward usage-based billing. The "Flash" model is recommended for fast work and not necessarily for huge repositories with loads of context. It's better if teams compare their output with other larger models, especially if they're working on security-sensitive changes and complex, multi-file work.
  • Recent Achievements

    • One Year In
      bernmeister earned a badge
      One Year In
    • Week One Done
      Scoobystu earned a badge
      Week One Done
    • Week One Done
      tuben earned a badge
      Week One Done
    • First Post
      OffsetAbs earned a badge
      First Post
    • Reacting Well
      OffsetAbs earned a badge
      Reacting Well
  • Popular Contributors

    1. 1
      +primortal
      462
    2. 2
      +Edouard
      213
    3. 3
      PsYcHoKiLLa
      157
    4. 4
      Steven P.
      73
    5. 5
      FloatingFatMan
      71
  • Tell a friend

    Love Neowin? Tell a friend!