Tree of Savior Forum

I checked my GPU load during terrible city framerate loss. Here's what I discovered

Didn’t try setting it to 1.
But right now I’m doing dungeons. Would have to pass that on to someone else or I’ll do it after.

Before the arrival of all the players and when he/she dies in that video and comes to a new place it goes back to 30fps. That means it prob cleaned everything but as you are playing it also start cleaning up randomly causing slow down because it has to search what to delete and what to not delete and if it’s in a loop and doing a new all the time then the Garbage collector will be working hard.

The problem you’re describing may be true (especially in a long play session)… but starting the client fresh and being in a crowded city results in massive frame drops even when the memory usage isn’t near 2 GB.

The game has been running for 12 hours on my end, visiting various maps with two different characters, and memory use is at 1.1GB.

Besides, lack of RAM would crash the process, not make it run slowly.

1 Like

There are some registry keys that one can add to disable TCP ‘nagling’ and increase AckFrequency. WoW players know it as “Leatrix latency fix” - in some cases in can halve latency to the game servers but usually effect is lesser but still noticeable.

Lack of RAM would force application to abuse the hell out of page file. But when client exceeds maximum available virtual memory - it does crash with some error (“something out of bounds, memory cannot be read” or similar, havent got it recently)

Technically speaking imagine a list of names. I’ll give it unrealistic proportions for this example.
each name takes 1kb of memory.
you have a function to check if a name Starts with an “A”
Say you have 100 names => 100kb, no problem to call this function.

But when you get to 10mb of names, 10240 ones. Good luck running that smooth.
So memory can be a hint on perf problems

I’m running PC3-14900 RAM modules in dual channel; my RAM read speeds go close to 30GB/s (and I’m pretty sure everyone here has at least PC3-12800 single-channel, which is about 12.5GB/s read).

I’m pretty sure RAM R/W speeds aren’t a bottleneck here. Processing this data could be… if the game was taking up more of my CPU.

1 Like

Pagefile is only used when your RAM is full. As you yourself said, Client_tos.exe has an addressable memory limit of 2 GB (most likely). I personally have 16 GB of RAM. If I only run ToS, there will be no way I could ever hit the pagefile. If Client_tos.exe goes over the 2 GB limit, then it will just crash as @Maavy pointed out.

I don’t mean RAM speed, I mean what has to be calculated on the CPU is stored on the RAM.
And what variables / Lists etc the game uses and runs through is only known by the devs.
And how this memory is cleared to reduce the amount of stuff the cpu has to cycle through.
Slightly bigger amounts of RAM allocations can lead to a bigger impact than it might seem on the first look.
a 100kb RAM using exe can run 100 times worse than a 2gb one.
To me it seems like this game has no active garbage collection running and only clears stuff on loading screens (Changing maps / channel).
But thinking about it that would go towards a somewhat another direction of lag than “why does it lag especially when there are many players on screen - and what can be done”

yep this game needs to be optimized!

Just checked with 1 instead of 0 for DrawActorPersent, it seems to be the same.

The game never goes over 32% CPU usage on my i5-4460 (when the whole system is at 45-ish%).

I know how bad an algorithm can be, even when going through a small dataset (for example, O = n! complexity). Happens that what causes the issue here isn’t a lack of computing power from the client side; the application is running in two separate cores of my CPU and won’t ever get to 100% of both. It also isn’t being bottlenecked by my RAM speeds. I don’t really know what you mean in your argument.

1 Like

More or less i had in mind my Weapon Swap issue, where after changing map/channel it works instantly.
But after running around on the same map for a while, fighting monsters, swapping equip back and forth. It starts causing more and more freezes up to a second or so.

So there is something, probably in the memory going on, uncleared, piling up until one changes map/channel. That especially gets called by this weapon swap function.

I don’t know how much of the same parts in memory are called by other stuff, but if bits and pieces of general gameplay rely on what causes weapon swap to freeze the game after a while, it will run gradually worse when playing for a longer time on the same map.

[Edit] And i don’t think while freezing the game it caused my cpu to go up.
May go and check that out.[/Edit]

But as already mentioned this wouldn’t probably be directly connected to the more players on screen = instant low framerate.

Just tested spamming Alt+Z to switch weapons, while monitoring CPU/RAM usage. All of this in Ashaq Underground Prison 3F, in an empty channel.

Idle: 60fps, ~710MB RAM usage, ~33% CPU usage
Single Alt+Z: Doesn’t change
During Alt+Z Spam: Drops to 30~35fps, RAM usage drops to ~690MB, CPU usage doesn’t change
After Spam: Back to 60fps, RAM usage back to ~710MB, no changes to CPU usage
Single Alt+Z after spam: No changes

I don’t call this 20MB RAM drop anything notable; might have been random as the game’s memory usage oscillates a lot. I can’t reproduce this slight freeze when switching weapons even after doing 100+ switches (didn’t do anything between them, though)

I also tried spamming with weapons with different models so the game has to render them again; I had similar behavior except I got to 28-30fps during the spam.

Weird… is the second weapon set stored in the inventory?

EDIT: I also wonder if repeatedly swapping a piece of armor in a short period of time also hurts the frame rate?

Yep.

In fact, it’s my first time using this feature, so I just configured my weapon sets (I am in my low level Wizard, so my first test was with an Oak Staff in both slots, the second one had a Cane Rover in one of the slots (with no off-hand equipment because I have none in this character)).

Right click spamming at armor pieces causes my FPS to drop from 60 to 45-50. No resource usage changes.

I’m almost sure it’s the netcode at fault here, as armor pieces won’t affect rendering at all.

1 Like

Awesome, glad we came to the same conclusion :slight_smile:

The true hidden final boss of this thread is the netcode. Basically it seems you can safely blame it for anything and everything rofl.

Hang on, got a video recorded. With external software to also capture a part of the taskmanager at the same time.
Strangely enough recording did hurt my framerate quite a lot. Couldn’t tell the software (OBS) to use another core through taskmanager though. But the basic problem should be visible. Will cut the video and upload it in a minute.

try it again with closed inventory (put pieces of armor on hotkey bar)

Same result, except that the FPS drops scale with the amount of keys (and different pieces of equipment) being spammed. Got to 28fps with 4 items being swapped.

Well, the packets sent should scale in the same way, so… yeah.

1 Like