Low-performance PC tuning (Windows-based)

Hello there. I can’t define is here something similar, but I will write little man about how you can tune up your Windows-based PC if you have performance troubles like I do.
I spent much time to find information and what can I say, you can find useful tips, but all these tips are scattered. But the point is that performance is complex task and I will add some advices from myself and try to consolidate all in one place.
All tools and advices are totally free because if I had money, I would buy just more powerful PC =)

Let’s start from little OS tuning:

  • First of all I recommend clean you autorun. Why? That will free your RAM of unnecessary DLLs, background applications and other. There are many ways, but I use tool “Autoruns”(earlier it was developing by sysinternals guys, but then MS bought them x_x). Just download, unzip and run as administrator. Then all you need is unchecking redundant boxes, but be careful - you can kill your OS :slight_smile: (onetime I disabled system library and OS didn’t boot after restart). Utility has many great options, just look inside (by the way on site are other useful utilities eg process explorer)
  • As mentioned above Autoruns.exe is useful, and its far better than the legacy tool Msconfig.
    But the latter is ok for a quick overview if you don’t have time or insider know-how!
  • Next you can press Win+R hotkey(Run) and run “services.msc”. That’s list of services which are running on your system. Here are many services that you can disable. Double-click on item, there is startup type. If you don’t need service to start set it to Disabled, if you doubt need you some service to run then you can set Manual startup type. Be careful again, do not disable system critical services.
  • Now pressing Win+Break opens system information window, there is Advanced system settings link -> Settings… button in Performance area. Here you can disable many explorer visual effects. I got it setup like this

Next we’re going to Advanced tab and set there Adjust for best performance of: Programs radiobutton. Below is button for setting up virtual memory(paging(swap) file). Before setup virtual memory I highly recommend read this article by Mark Russinovich(the well-known Windows expert and author of the Sysinternals tools), don’t change these settings unless you know how it works.

  • Next we can go to Control Panel->Administrative Tools->Task Scheduler. Here you can expand all and check all sections and disable few tasks which are useless for you

Now what about UE itself :smiley: I found for me useful few things:

  • First disable Realtime checkbox in viewport

  • Next you can downgrade visual options, don’t forget upgrade them back before deploying (but maybe that doesn’t matter i dunno =) ) engine_scalability.png engine_quality.png

  • If you have small monitor like I do (second I successfully destroyed while soldering the lamp x_x) I think you find usefull checkbox for small buttons upon viewport
    engine_realtime.png

  • Again about small monitors: don’t forget that you can relocate windows inside editor. I have such disposition
    engine_scalability.png

  • Now back to OS. I have laptop with 2 videocards: one good enough and one integrated. Here you can setup such thing as launching editor using the good one. In my case it looks like this within NVidia control panel

I set these prefers for 2 applications:

And little piece about Visual Studio(VS2015 CE in my case). I always developed using C#. Now C++ with these engine sources is such nightmare for me. Just because intellisense and building time. I searched a lot, but found not so many advices.

  • First of all read documentation page about setting up VS for UE.

  • Next if you low on memory go to Options->Text Editor->C/C+±>Advanced and set there Max cached translations units to 2(min value). This units count mean how many background processes may spawn VS for “intelissensing”(on my PC each such thread consumes 670MB of RAM)

  • Now to solution explorer. Open file {ProjectName}.Build.cs. Add 2 lines at constructor’s beginning:



MinFilesUsingPrecompiledHeaderOverride = 1;
bFasterWithoutUnity = true;


That’s somehow accelerates building of project. But developers recommend using it only on your own and on little projects :slight_smile:

  • The only thing which I found useful for me at intellisense question was following. In solution explorer right-click your project(and maybe UE project, I did for both) and open Properties->NMake->IntelliSense->Additional Options set to /Yu (that flag commands to complier cache intellisense to local files)

  • Optional you can go into configuration manager and disable there checkbox for building UE project (but build it first ^_^) or you can just use Shift+F6 hotkey for building current project
    engine_quality.png

MORE ADVANCED OS ADVICES: (Don’t use them if you haven’t clue what is this for)

  • TASKS:
    Even if you opt not to download Sysinternals → Procexp.exe, keep a close eye on ‘Task Mangler’…
    Because there are mandatory processes / modules that can kill CPU cycles over time.
    For processes that can’t be disabled, test-drive Sysinternals Procmon.exe, as it offers incredible insights!
  • COM / DLLhost:
    The list above doesn’t cover COM spawned processes, or CPU eaters that show up on Task-Mangler as DLLhost…
    I like to track these down using Procexp to get the class ID, and then go through the registry to purge them.
    If you opt to do that, then use regedit.exe, and always export each key before deleting it, so that you have backups.
    However, the preferred solution is to use the less than helpful ComponentServices.msc tool (Start → Run → comexp.msc)

As we all read this that means all we use web-browsers. And here we go with few options too. These options enhance your security in web and also make your browser consume less memory (nobody wants his project be stealed :D)
BROWSER ADVICES:

  • Managing Add-ons:
    The enemy within! Be mindful of nasties hiding in the apps you trust, like add-ins / add-ons / plug-ins for Browsers.
    There is a popular consensus that its best to avoid IE, but if that’s not possible then scrutinize entries in:

Code:



Tools -> Manage Add-ons -> Toolbars and Extensions -> Run without Permission... 
Tools -> Manage Add-ons -> Toolbars and Extensions -> All Add-ons... 
Tools -> Manage Add-ons -> Toolbars and Extensions -> Downloaded Controls... 
Tools -> Manage Add-ons -> Accelerators... 
*[Note: Some of these could have changed in recent versions or with Edge etc]*


For Firefox 38+, watch out for an auto-installing closed-source Adobe DRM add-on.
Kill it off if possible, as there’s info about ‘what else’ it does. Uncheck Play DRM in content settings also.

  • Overall, kill off all Flash & Java add-ons if you have any, as they’re a real liability as many already know!
    In short, Flash / Java are the #1 delivery device for Malware / Spyware, all of which will dog your system.
    Its hard to believe sites like Twitch still insist on Flash, but they’re working to switch over apparently.
    If you can’t do without either, then regularly update your Hosts file to block evil websites.
  • That’s couple addons I use to manage scripts and request from site:
    NoScript manages scripts on page. First thing I add to browser after install cause most of vulnerabilities lies within scripts.
    RequestPolicy manages cross-sites requests.

UPDATED: Thanks to franktech for advanced advices about OS and browsers. I added it all above

That’s all what I remember at this moment folks. After all steps above I finally can breathe freely, but if you can give more advices then give them xD. Thank you for attention.
PS: I’m pretty new to UE too, so if I’m wrong with anything please correct me.
PPS: I never officially learned english… so it’s very poor :smiley: feel free to correct my mistakes/typos and I would be grateful if someone literate edited thats all above

Thanks for this useful collection!

Glad to hear you find it helpful :slight_smile:

Pagefile. It’s all well and good to allocate a statically sized pagefile for dumps, but you should really leave Windows to handle the pagefile, and here’s why.

The pagefile is designed to be used as “backup” memory in case your physical RAM runs out of extra head room for new data, when you fill your RAM up, Windows will start to move processes to swap memory (pagefile) based on priority settings to free up space, at the cost of those processes having reduced performance. When you limit your page file to a specific set size, say 9GB (as per what you’ve got set), you’re basically limiting the maximum amount of data Windows can move to swap. What happens when say a process has a memory leak that you didn’t know about and starts filling up memory? Windows will start to move processes to the pagefile and will eventually move that process over (if there’s enough room), however once the page file hits the maximum size that you’ve told it it can get up to (9GB), oops, no more room to move processes over. Either your computer will lock up, Windows (or the program itself that you’re trying to run) will prevent you from starting a program as there’s not enough memory, or performance will go down the drain. That’s not good.

On top of that, you’ve also set the page file to start off with 9GB, even though it doesn’t need anywhere near that initially. You should always give the pagefile say 1GB, or less if you can, initially. If it needs more, it will give itself more room up until that maximum value you set, that’s what it’s for.

It’s a good idea to let Windows take care of it, because Windows will automatically manage the page file to be as efficient as possible. If it needs more space, it’ll give itself more space, if say it was up to 12GB but now it’s at 6GB, it’ll shrink itself back down to 6GB to free up room. Windows won’t lead your computer astray down inefficiency lane.

Hello jcm,

I don’t think that in case of memory leak Windows default pagefile allocation will act some way better. In your opinion it will fill up all memory on your hard drive first and then OS will go down. I don’t see here any good points. And in general I don’t think that Windows will allocate memory infinitely, and in the end we will get same results.
About setting pagefile min and max size equally: that is needed for less drive fragmentation(and in particular pagefile itself). I have enough free space on HDD unlike RAM, so I can set pagefile size to 9 GB statically. Ofc if you doesn’t have it, better way is to set initial size slightly less.
Ofc it’s better to let windows decide what size pagefile you need, if you don’t know how works your system and what memory plan you need. I can add more warnings to article, what you think?

Franktech, thank you for more advanced advices and useful information! I added them to main post.
I think these things are very important. If I don’t have driver’s license then I don’t drive a car. But I can use my PC any inappropriate way. My opinion is you must know how works your PC to use it right way.

About your question I can only assume that better solution would be develop your own such tool, which would satisfy all your needs. Here comes system hooks into play as far as I know.

Awesome … Don’t know if I really need that with a i7 and Titan X ^^

Pagefile essentially acts as a buffer in the case of a memory leak. Say, you’re working in Unreal and you happen to find a memory leak in your version (I’m still on 4.9.2 and find it eats into RAM, so how fitting). It slowly eats into memory. What Windows can do is Windows can start moving processes over, starting from the bottom with background and idle processes, to free up space. While it doesn’t free up that much, it frees it up. Unreal needs more space, so Windows starts moving other processes over that are set to low priority, and can free up maybe 100+MB of memory collectively. This keeps going. Of course eventually the HDD will be filled to capacity if this was allowed to continue indefinitely, but most people have enough free drive space so that this won’t happen, especially if you factor in the drop in performance from physical memory being filled to near capacity and certain processes operating off of the pagefile. Yes, performance will drop when the pagefile is used, but reduced performance is much better than the computer freezing on you and forcing a hard reset, or not being able to open any new processes because physical memory is at capacity and there’s no more room. This is why pagefile is important.

And it’s not about what the user knows about their computer, the main reason why you should let Windows handle the page file is because Windows will manage it to peak efficiency, where you’ve set it to be a static size and it can never grow or shrink. Where Windows will reduce the size of the page file if it’s a bit too big (while keeping a decent amount of head room), and increase the size if need be, you’ve just told Windows “this is the size of the page file initially and for the maximum size it can ever be”. If the page file isn’t being used, it’s still going to be 9GB, and what if it’s heavily used? Only ever going to be 9GB, which means you’ll hit the wall of “no more memory” sooner.

jcm, thank you for criticism. So I decided make little research on our discussion’s subject. And I found very helpful article by Mark Russinovich(the well-known Windows expert and author of the Sysinternals tools). And what I can say, none of us was right. I added link to original post. And removed screenshot that no one was confused :rolleyes:

PS: I didn’t recommend any certain settings for setup pagefile :smiley: I just recommended read something about it at first