Guide: Increasing FPS with CPU Affinity Settings

CheeseburgerChad·1/6/2019, 9:28:22 PM·6 votes·4,044 views

Hello Everyone,

As someone who plays on a 144Hz monitor, it can be frustrating to have League dip below 144fps, causing some annoying stuttering or lag even with high-end hardware. For me (I have an i7-6700k and 1070 Ti), League used to run around 150fps when just sitting in jungle or lane (not counting game start where it's 300+), but as soon as a bunch of minions or champions are also put into play it's not uncommon for fps to drop below 120 even when I turned down graphics settings. This was frustrating to me, so I spent a lot of time figuring out a solution which I would like to share with everyone who might be in my scenario.

It turns out that what was most helpful, without needing to turn down the quality settings, was limiting League to use only specific CPU cores. My processor uses 4 cores and 8 threads. By default, Windows treats all cores/threads the same, and labels them starting at 0, so in my case and from now on I will refer to these 8 threads as "cores 0-7" even though technically the even cores are physical and odd logical. From my testing it seems that by default most common applications and windows background services typically utilize the first couple cores/threads on the processor (0-3) more than the others (4-7), and as such it makes sense that forcing league to use the lesser-used cores/threads (4-7) means that there is less "competition" between league and other programs for CPU resources.

There are a variety of ways to limit a program to specific cores (called "affinity"). The quickest is using task manager, as it is built into windows. However, task manager does not save these "CPU affinity" settings when you close the program or restart your computer, so that is where a 3rd party program is necessary. I recommend toying around with affinity settings in task manager first to see if that helps you at all and then using a 3rd party program to set those settings automatically if it works for you. I will provide general steps on how to do this below.

In Task Manager (temporary, resets when league is closed):

  1. Open League and start a game in the practice tool so that you don't get penalized for not actually playing. League must be open and you must be "in a game" to proceed with this.
  2. Without exiting your "game", open task manager (Ctrl+Shift+Esc) (You might need to Alt+Tab to switch out of League without closing it)
  3. Click "more details" in task manager if you haven't already.
  4. Go to the "details" tab.
  5. Find "League of Legends" (sorting by CPU or Memory should help you find it).
  6. Right-click on it, and click on "Set affinity".
  7. Uncheck boxes until only the 4 "highest" cores are still selected. For me, this means I have only cores 4,5,6, and 7 checked. Then, click OK.
  8. Right-click on League again, and this time go to "Set priority -> High".
  9. Optionally, you can also find all of the processes that Start with "LeagueClient..." and repeat the above process, but set these to cores 0,1,2, and 3 instead. This in theory will prevent the client from competing with the game itself for cpu resources. I personally also do this for other programs like Discord, but that may or may not be necessary. You can give it a try if you want.

Note: The above process is what worked for me with my 8 thread processor, but if you have more than 8 threads and wish to try this I would assume that with a 16-thread CPU you could probably set league to use at least 4 cores between 8-15 and you should be fine. I should mention that while many people on these forums seem to think that "League only uses 1 or 2 cores" I found that using only 1 or 2 threads caused me to only get around 90fps, while using 4 was the sweet spot for me and substantially increased FPS. Therefore, people with 4c CPUs without hyperthreading may not find this guide very useful.

Using 3rd Party Software (automatically set affinity and priority, settings persist each time league opens) If you followed my guide above using task manager and determined that setting CPU affinity helps your in-game performance, I recommend using a 3rd party utility to set these settings automatically for you, as Windows does not save them when you reboot or close League. I personally use "process lasso" (you can use the Free version for this) although there are a variety of tools that can do what we're doing. Keep in mind that this guide is for process lasso however.

  1. After you have installed process Lasso, make sure you are still in a game of League (in the practice tool)
  2. Click the "Active Processes Tab"
  3. Find League. Right-Click on it.
  4. Set priority class -> always -> High, and do the same for I/O Priority
  5. RIght-click and go to CPU Affinity -> Always -> "Select CPU Affinity"
  6. Select the desired cores that you determined from Task Manager before. Leave NUMA Nodes alone (not sure what this is, but mine is deselected by default). Click OK.
  7. You can also repeat this process for the League client and other programs like discord to set them to other cores so that they never interfere with league, as I mentioned above. I'm not entirely sure how much this matters, but I did it anyway, and both the client and programs like discord are fine with only 4 cores regardless.

As long as you have selected the option to have process lasso start when you boot Windows (I think enabled by default), these settings should apply automatically and you shouldn't need to do anything else to maintain the performance benefits. Process lasso has a nifty little notification icon that shows system utilization but can be disabled if you so choose.

In summary, setting League and the client all at "High" priority settings, with Discord and the League Client limited to cores 0,1,2 and 3 only, and League free to use only cores 4,5,6, and 7 by itself, allowed me to significantly increase game performance compared to the default in which League is "allowed" to use all 8 threads.

If anyone wants to discuss their insights or results with this, I welcome such discussion below. I'd love to know how this works on other systems, or if anyone has any other related tips. I don't stream personally but I'd assume this could potentially help people who do also. I'm no expert, and obviously your results may vary, but after a lot of research and testing this was able to make League a lot more playable for me in many scenarios, so I wanted to share my findings for other people who might also be in this scenario.

Good luck!

7 Comments

eps1n7/12/2019, 5:12:04 AM3 votes

holy shit, thank you man. Thanks to you i can finally play the game properly. After all the solutions i have tried this is the one finally doing some work.

øHaruø1/6/2019, 9:36:38 PM1 votes

Can someone confirm this so I don't fuck myself over, thanks.

Kaneki115210/27/2019, 3:43:56 AM1 votes

<3

Herbmaster12/26/2019, 5:48:00 AM1 votes

Yeah dude, this is HUGE. Thank you so much man. Not only was I stuttering in-game with massive PC specs, but my league client itself was barely playable - now I know its due to cpu choke and it is fixed now. You are a god among men.

Edit: And not only this, but your fix is much more detailed and useful than even those people who initially cued me to look at processor affinities, specifically in that you mention 4 cores not 2, and that you bring up process Lasso as the tool for perma-saving the settings. G o d a m o n g m e n. First forum comment I've made in years. You deserve it.

chickenbomb691/8/2020, 3:53:26 AM1 votes

I have a 6 core, 12 threads cpu. What cpus should i remain enabled for league?