Crashes Caused by Memory Leak - Workaround

Status
Not open for further replies.
Absolutely untrue.

"A memory leak is where the game have a error in the coding and loads something infinitely or in a looped amount of times to where the size will infinitely increase."
This isn't the definition of a "memory leak", and the examples given are not accurate. Memory leaks can happen for various reasons : dereferencing a NULL pointer (an initialized pointer that doesn't point to anything), losing the virtual address, never freeing allocated memory(which is what the examples you gave are, they load infinitely, therefore the process never reaches the point where it gets freed).

Now, changing the priority is NOT supposed to work. Telling the operating system "please, change this process' time slice" does not work. Setting a higher priority MAY only increase performance, as the process (game) will have more reserved CPU time for it's threads, however, in some instances it could decrease the performance, as the process/thread scheduling algorithms will jump from processes/threads less frequently, because of the game reserving much more CPU time, but this shouldn't be noticeable if your PC's are good enough.

Now, let's explain "real-time". Real-time scheduling algorithms are ones, that give the virtual execution units exact, fixed CPU time, no more, no less and system interrupts cannot preempt the threads in order to run other elements (other threads) from the ready queue. It's Microsoft, so I assume they implemented soft real-time scheduling, where a little more or less milliseconds is tolerant. If anything, this will only cause the game to crash more often (if it goes beyond or below it's given fixed time slice) and almost 100% certainly should slow it's performance.

Experiencing less crashes after changing the priority is just a coincidence, telling the CPU to give more or less time for execution to something will not fix memory issues. This isn't magic, this isn't how it works.
It's just a workaround, not a fix :)
 
It's just a workaround, not a fix :)

I used fix and workaround interchangeably, I'm not a native speaker, so excuse my mistakes. It's still not supposed to work, this isn't a workaround. That's like saying "if your engine breaks down, you can change the tyres and you'll be just fine", changing one thing doesn't have effect on the another. Fix, workaround, call it whatever you want, it's still untrue that the crashes will happen less frequently. For people who don't have crashes as much now, it's a coincidence. When beta started, I had 6-7 crashes, I didn't change anything, but from thereon (before the update), I had no crashes.
It just so happened that my experience with crashes was in the beginning, coincidence, nothing else.
 
I used fix and workaround interchangeably, I'm not a native speaker, so excuse my mistakes. It's still not supposed to work, this isn't a workaround. That's like saying "if your engine breaks down, you can change the tyres and you'll be just fine", changing one thing doesn't have effect on the another. Fix, workaround, call it whatever you want, it's still untrue that the crashes will happen less frequently. For such people, it's just a coincidence.
Thank you very much for letting us know. We will consider what you said. In the meantime, even if it is just a coincidence, it's nice to have fewer crashes whenever possible.
 
Thank you very much for letting us know. We will consider what you said. In the meantime, even if it is just a coincidence, it's nice to have fewer crashes whenever possible.
True, fewer and fewer crashes == happier players. You are welcome, and sorry if I sound "too cold" or "too harsh". People sometimes say it, I have no idea what makes me sound like this. Lol...
 
Ahoy there!

About 50% to 75% of my crashes are due to a memory leak. Explained simply, a memory leak is when the game loads much more information that it needs to have (for example, having both Tortuga and Port Royal loaded when you are currently on Tortuga). If you were to check the TLOPO log after having a memory crash, it would say "ran out of memory".

This workaround tells your computer that you want it to give TLOPO the highest priority for RAM usage. It won't completely stop the crashes, but it will make them less frequent.

A friend told me about this solution and I figured we could all use it:

For Windows 7, 8, and 10, open Task Manager and go to the "Details" tab. Find "tlopo.exe" in the list, and right click. Roll over "Set Priority" and change it to Realtime or High.

View attachment 67743

For Mac, go to your Activity Monitor. Find "tlopo.exe" in the list, and set priority to Real Time or High.

View attachment 67744

You will have to set the priority every time you log in. The program is temporary, so the setting is as well.


Hope this helps reduce some of those pesky crashes :)

- Chey
Whats the difference between "high" and "realtime"?
 
Whats the difference between "high" and "realtime"?
By setting it to high priority you are saying, "hey, operating system, I want the game to be given more CPU time". By setting it to real-time you are saying "operating system, I want the process to be given a fixed value of time slice (CPU time) and I don't want this same process to be affected by system interrupts, no preemption! If the process goes too much below or above the time slice given, make the process crash/terminate".
 
By setting it to high priority you are saying, "hey, operating system, I want the game to be given more CPU time". By setting it to real-time you are saying "operating system, I want the process to be given a fixed value of time slice (CPU time) and I don't want this same process to be affected by system interrupts, no preemption! If the process goes too much below or above the time slice given, make the process crash/terminate".
Okay thanks
 
well I wasn't exactly trying to explain to people with no development knowledge what a memory leak actually is but instead make a point about why changing the priority may or may not even effect it. Because as I said what it appears to be is memory isn't freeing allocated memory. Unless you have another way to explain 16 GB being entirely used with a game who's files fully uncompressed don't even exceed the maximum 32 bit int
 
well I wasn't exactly trying to explain to people with no development knowledge what a memory leak actually is but instead make a point about why changing the priority may or may not even effect it. Because as I said what it appears to be is memory isn't freeing allocated memory. Unless you have another way to explain 16 GB being entirely used with a game who's files fully uncompressed don't even exceed the maximum 32 bit int
Who said that it's not a memory leak? It is, the game never reaches the point where it frees the memory allocated, as it keeps allocating in a loop.
 
I never argued whether it was a memory leak or not, I'm just pointing out based on what it did to me when it crashed that changing priority more then likely wont help it. Unless for some odd reason it does.

look-of-disapproval.png
 
I never argued whether it was a memory leak or not, I'm just pointing out based on what it did to me when it crashed that changing priority more then likely wont help it. Unless for some odd reason it does.

Exactly. I've been trying to explain this with my last 3 posts here... It's not supposed to help it in any way, theoretically it's an extremely flawed logic to think otherwise.
 
Im also having this issue on Mac. I kept my Activity Monitor open and the game usually crashes once it starts using up between 1.3 GB - 1.5 GB of memory. Thats definitely more than it should be using, right?
 
Im also having this issue on Mac. I kept my Activity Monitor open and the game usually crashes once it starts using up between 1.3 GB - 1.5 GB of memory. Thats definitely more than it should be using, right?
There's a big "depends" of whether that's normal or not.
 
This is correct, glad you took the time to write this up.

Absolutely untrue.

"A memory leak is where the game have a error in the coding and loads something infinitely or in a looped amount of times to where the size will infinitely increase."
This isn't the definition of a "memory leak", and the examples given are not accurate. Memory leaks can happen for various reasons : dereferencing a NULL pointer (an initialized pointer that doesn't point to anything), losing the virtual address, never freeing allocated memory(which is what the examples you gave are, they load infinitely, therefore the process never reaches the point where it gets them freed).

Now, changing the priority is NOT supposed to work. Telling the operating system "please, change this process' time slice" does not work. Setting a higher priority MAY only increase performance, as the process (game) will have more reserved CPU time for it's threads, however, in some instances it could decrease the overall performance, as both the process and thread scheduling algorithms will jump from processes/threads less frequently, because of the game reserving much more CPU time, but this shouldn't be noticeable if your PC's are good enough.

Now, let's explain "real-time". Real-time scheduling algorithms are ones, that give the virtual execution units exact, fixed CPU time, no more, no less and system interrupts cannot preempt the threads in order to run other elements (other threads) from the ready queue. It's Microsoft, so I assume they implemented soft real-time scheduling, where a little more or less milliseconds is tolerant. If anything, this will only cause the game to crash more often (if it goes beyond or below it's given fixed time slice) and almost 100% certainly should slow it's performance.

Experiencing less crashes after changing the priority is just a coincidence, telling the CPU to give more or less time for execution to something will not fix memory issues. This isn't magic, this isn't how it works.
 
Ahoy there!

About 50% to 75% of my crashes are due to a memory leak. Explained simply, a memory leak is when the game loads much more information that it needs to have (for example, having both Tortuga and Port Royal loaded when you are currently on Tortuga). If you were to check the TLOPO log after having a memory crash, it would say "ran out of memory".

This workaround tells your computer that you want it to give TLOPO the highest priority for RAM usage. It won't completely stop the crashes, but it will make them less frequent.

A friend told me about this solution and I figured we could all use it:

For Windows 7, 8, and 10, open Task Manager and go to the "Details" tab. Find "tlopo.exe" in the list, and right click. Roll over "Set Priority" and change it to Realtime or High.

View attachment 67743

For Mac, go to your Activity Monitor. Find "tlopo.exe" in the list, and set priority to Real Time or High.

View attachment 67744

You will have to set the priority every time you log in. The program is temporary, so the setting is as well.


Hope this helps reduce some of those pesky crashes :)

- Chey
how do I set the priority on Mac?
 
I also agree with what Falco said. Setting the CPU priority higher for a process will not affect the amount of memory that is allocated to it, and it wont have any effect on memory-related issues, so this workaround is really just a placebo :p
 
I get triggered when people are not technologically correct.
One needs to realize that this community comes from a wide range of varying technical ability and comprehension. Not everyone is going to know the exact inner-workings of a thing as complex and multi-faceted as the Microsoft operating system architecture.

As an IT professional, I support a few thousand users. I tailor what I say to them when training them in a manner that makes sense to them. Come down a few notches - get on their level. The regular end-user is not going to understand our terminology and acronyms. This is important to consider, even if you are a higher-tier software developer that doesn't interface much with end-users.

Thanks.
 
Last edited:
Status
Not open for further replies.
Back
Top