• Dear forum reader,
    To actively participate in our forum discussions or to start your own threads, in addition to your game account you need a forum account. You can
    REGISTER HERE!
    Please ensure a translation in to English is provided if your post is not in English and to respect your fellow players when posting.

Fixed on Beta: Memory leak - Guild Expeditions [43175]

Andi47

Overlord
Hooray, the first time I have seen, that a CM tried and reproduced a memory leak issue!! :)

I guess we can set at least the "in and out of the tech tree" issue to "confirmed"?
 

Andi47

Overlord
I thought that was in relation to pushing notification windows, not memory leaks?

In and out of the tech tree... at the moment there are two topics (and two different threads) about it:

1.) in the other thread it is indeed about pushing notification windows.

2.) But here in this thread I mean the steadily increasing memory (and the crash after 70 times) when you go into and out of the tech tree (or repeatedly do other actions, such as opening and closing the trade window, or doing several fights in GE or GvG), a.k.a. memory leak.
 

DeletedUser7942

Guest
Hooray, the first time I have seen, that a CM tried and reproduced a memory leak issue!! :)

I guess we can set at least the "in and out of the tech tree" issue to "confirmed"?
Yes that was a Research Window only test but it also happens when opening/closing the GE window, Continent Map Window, etc. multiple times as well as I'm sure you know but thought it worth mentioning. I don't know anything about this stuff but I can read simple numbers lol and it seems to me in laymans terms when we open these windows we get new information contained in ram then I would like to think when we close those windows the memory would release that info but seems to me stays in memory, then we opened up the window again and again get the same info added to memory and again not released when leaving the window until it finally builds up enough to crash.
 

Andi47

Overlord
Yes that was a Research Window only test but it also happens when opening/closing the GE window, Continent Map Window, etc. multiple times as well as I'm sure you know but thought it worth mentioning. I don't know anything about this stuff but I can read simple numbers lol and it seems to me in laymans terms when we open these windows we get new information contained in ram then I would like to think when we close those windows the memory would release that info but seems to me stays in memory, then we opened up the window again and again get the same info added to memory and again not released when leaving the window until it finally builds up enough to crash.

I suspect the same - and this is exactly what defines the bug type "Memory Leak".
 

Andi47

Overlord
Re-posting the collection due to quite some additional info added:

3.2 GB - sounds similar to what I am experiencing...

Collecting Memory leak reports from this thread:

1.) from TheSlayerofSloppyJoes (System: Win7, Browser: Chrome; starting value after refresh: ~290 KB = 0.29 GB):
  • Post #8: repeatedly opening and closing GE window: 1.08 GB
  • Post #9: repeatedly (~30 times) opening and closing Research window: 3.2 GB (!!)
  • Post #18: Same test as in Post #9, but under Windows 10: continuously increasing memory use AND CPU use; 4 GB and crash after ~65 times opening and closing research window
  • Post #12: repeatedly (~50 times) opening/closing research window: ~5 GB, game crashes
  • Post #24: same issue when repeatedly opening/closing the GE map or the Continent Map.
  • Post #27: open/close the continent map: 1.1 GB after 20 times; crash after 26 times
  • Post #28: open/close the GvG map: 4 GB after 100 times, crash after 102 times
2.) from other players
  • Post #29: Magnus555's laptop burned due to constantly being on maximum load when playing FoE

Note: while normal playing you would probably not open/close one of these windows 50 times, but one opens and closes quite a lot of windows:
  • collecting production: when restarting supply or goods production you have to open maybe 10 or 15 building windows
  • checking news: with all the "xy FP endless chain" messages, you open maybe 10 messages within one or two hours
  • fighting in GE: you change maybe 8 to 12 times in a row between GE map and battleground maps
  • Checking the GvG maps: you open 12 era maps before returning to city
  • ...and maybe you open the trade window 2 or 3 times when you are searching for certain goods
summing this up, you have opened and closed maybe ~45 windows/maps - a number where the troubles with eating up memory begins.
...and when you play on 2 or more servers (with 2, 3, or 4 servers open), one has quickly opened and closed 100 or more windows/maps. With the numbers above, one can see, that you can expect 1 or 2 crashes when "just normal playing".
 
Last edited:

DeletedUser7942

Guest
Another test, this one even worse. Opening/Closing the Continent Map (not Provinces, just map and exiting) only 26 times resulting in the same rise in memory eventually crashing, I think I was near 1.5gb memory. (Win 10, Firefox, 6gb ram) (Chrome had the same results)

This is at 20x opened
cmap 20x firefox - Copy.JPG

6 more times opened
crash - Copy.JPG
 
Last edited by a moderator:

DeletedUser7942

Guest
Test opening/closing the GvG map (not provinces just map)
Did surprisingly well relative to the other tests, got to 102 before it crashed. (Win 10, Chrome, 6gb ram)

Open fresh game
chrome test 1 - Copy.JPG

chrome test x100 - Copy.JPG

102 crash.
 

DeletedUser4256

Guest
Days ago my 6 year old lap burned (power supply) because of the continuous device overheating caused by the continued high memory and cpu usage
I know perfectly that my died lap wasnt the best option to run games that require a powerful graphics card and 8GB RAM at least, but FoE? an old 2D browser game?
Its difficult to find another game (regardless of its platform) where the more time you play on it (in terms of hours or minutes) the more memory it consumes
From heaven my old lap thanks you for your great attention you're putting on this issue
 
Last edited by a moderator:

DeletedUser7942

Guest
I just tried going in and out of the tech tree as well.
At 70 times I was at 3.995GB, on 71 Shockwave crashed.
Wondering if you have reported your findings and if you have gotten any response that you can share with us.

I may have limited knowledge in these matters but the testing clearly shows that every time a player opens a window; GE, GvG, Continent Map, other players cities etc. the information that gets added to memory gets readded every single time until the players ram fills up eventually resulting in a crash. If I'm not mistaken a memory leak essentially means the programming forgot where the info went so what I think is happening is like this; open window, info regarding that area of the game gets added to memory, exit window, programming forgets it has added the info to memory, reopen window, all the same info gets added to memory again, repeat over and over again and memory continues to fill eventually crashing. When what I believe should happen is; open window, info regarding that area of the game gets added to memory, exit window, reopen window, only new changes since last open gets added to memory not entire structure of the area opened, resulting in very little memory added, fixed. (if anyone has expertise in these matters please correct me if I'm completely off here)

It's my belief there's no such thing as "GvG Lag", rather what players are experiencing is a result of constantly opening new windows in GvG giving them the impression it's a GvG problem when in reality its a game wide problem as explained above.

It's also sadly clear this has been a problem since the games launch and apparently no real explanation from Inno as to why this is, if it can be fixed at all other than maybe they are aware of it. I'm pretty sure we get they are aware of it, what we want to know is if anything can and is being done or do we just need 128GB of ram and refresh often forever.

Thank you for testing though and thanks for your work.
 
Last edited by a moderator:

Andi47

Overlord

No, this would not help:
1.) this is not used as RAM
2.) even a super-fast RAM won't help, unless you have Plenty (and I mean PLENTY!!!) of it. Maybe 64 GB or so....
 

qaccy

Emperor
Here's a question for the developers...obviously yes, we all have different systems we play the game on so maybe there's no 'universal' solution, BUT! What systems do the developers use to test/play the game on? Specifically, do the Inno workstations also have memory issues with the game? If there's a problem even at the source, perhaps start from there with solving memory issues? This is me assuming there are even problems running the game on whatever systems the Inno developers use, but I'm curious if even the developers have problems playing their own game these days!

And for what it's worth I don't mean any ill will with my post, I'm genuinely curious if this issue really is isolated to specific hardware/software configurations or if it's actually the game as a whole that's in need of some code optimization/overhauling.
 

DeletedUser7942

Guest
Here's a question for the developers...obviously yes, we all have different systems we play the game on so maybe there's no 'universal' solution, BUT! What systems do the developers use to test/play the game on? Specifically, do the Inno workstations also have memory issues with the game? If there's a problem even at the source, perhaps start from there with solving memory issues? This is me assuming there are even problems running the game on whatever systems the Inno developers use, but I'm curious if even the developers have problems playing their own game these days!

And for what it's worth I don't mean any ill will with my post, I'm genuinely curious if this issue really is isolated to specific hardware/software configurations or if it's actually the game as a whole that's in need of some code optimization/overhauling.
I'm willing to bet all my diamonds this is a game wide issue that affects everyone regardless of system software/hardware. As far as I understand memory leaks it can only be solved at the source which is the programming of the game. If anyone wants to test this simply open/close the Continent Map repeatedly and monitor your RAM, it will rise and eventually crash. Or you could do the same by opening/closing the Research window repeatedly and the same will happen. This tells me there's likely a universal solution, what that is I have no idea, maybe reprogramming, maybe html5, maybe a download client as opposed to browser.
 

Silveralius

Squire
I have debuger version of flash.
And first try to get to expedition:
http://prntscr.com/fmyt6q
Code:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at de.innogames.strategycity.expeditions.view::GuildExpeditionMapContainer/dispose()
    at starling.display::DisplayObjectContainer/dispose()
    at starling.display::Sprite/dispose()
    at starling.display::DisplayObjectContainer/removeChildAt()
    at starling.display::DisplayObjectContainer/removeChild()
    at GuildExpedition/dispose()
    at de.innogames.strategycity.main.service::ModuleLoaderService/_disposeModule()
    at de.innogames.strategycity.main.service::ModuleLoaderService/_onModuleRemovedFromStage()
    at flash.display::DisplayObjectContainer/removeChild()
    at de.innogames.strategycity.main.controller.modules::RemoveModuleCommand/execute()
    at org.robotlegs.base::CommandMap/execute()
    at org.robotlegs.base::CommandMap/routeEventToCommand()
    at Function/<anonymous>()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at org.robotlegs.mvcs::Actor/dispatch()
    at de.innogames.strategycity.main.service::ModuleLoaderService/unloadModule()
    at de.innogames.strategycity.main.controller::StateActionCommand/execute()
    at org.robotlegs.base::CommandMap/execute()
    at org.robotlegs.base::CommandMap/routeEventToCommand()
    at Function/<anonymous>()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at org.robotlegs.utilities.modular.mvcs::ModuleActor/dispatchToModules()
    at de.innogames.strategycity.expeditions.view.hud::GuildExpeditionHud/handleHudClick()
    at de.innogames.strategycity.shared.ui.hud::GameHudMediator/_handleGuildExpeditionsHudClick()
    at de.innogames.strategycity.shared.ui.hud::GameHudMediator/_handleClick()
    at Function/http://adobe.com/AS3/2006/builtin::apply()
    at SetIntervalTimer/onTimer()
    at flash.utils::Timer/_timerDispatch()
    at flash.utils::Timer/tick()

After contiune and Back to City

Code:
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
    at flash.display::DisplayObjectContainer/removeChild()
    at de.innogames.strategycity.main.controller.modules::RemoveModuleCommand/execute()
    at org.robotlegs.base::CommandMap/execute()
    at org.robotlegs.base::CommandMap/routeEventToCommand()
    at Function/<anonymous>()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at org.robotlegs.mvcs::Actor/dispatch()
    at de.innogames.strategycity.main.service::ModuleLoaderService/unloadModule()
    at de.innogames.strategycity.main.service::ModuleLoaderService/loadModule()
    at de.innogames.strategycity.main.controller::StateActionCommand/execute()
    at org.robotlegs.base::CommandMap/execute()
    at org.robotlegs.base::CommandMap/routeEventToCommand()
    at Function/<anonymous>()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at org.robotlegs.mvcs::Command/dispatch()
    at de.innogames.strategycity.shared.controller::OpenGuildExpeditionCommand/execute()
    at org.robotlegs.base::CommandMap/execute()
    at org.robotlegs.base::CommandMap/routeEventToCommand()
    at Function/<anonymous>()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at org.robotlegs.mvcs::Mediator/dispatch()
    at de.innogames.strategycity.main.view.cityhud.components.bottomLeft::MainButtonGroupMediator/_onGuildExpeditionClicked()
    at de.innogames.strategycity.main.view.cityhud.components.bottomLeft::MainButtonGroupMediator/_onButtonClicked()
    at org.robotlegs.base::EventMap/routeEventToListener()
    at Function/<anonymous>()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at de.innogames.strategycity.shared.ui::ImageButton/_onMouseUp()
    at de.innogames.strategycity.shared.ui.components.button::ResourceLoadingButton/_onMouseUp()


There is some another error if I get relic, but now I havent it. After I get relic I post it.
 
Last edited by a moderator:

DeletedUser7942

Guest
I have debuger version of flash.
And first try to get to expedition:
http://prntscr.com/fmyt6q
Code:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at de.innogames.strategycity.expeditions.view::GuildExpeditionMapContainer/dispose()
    at starling.display::DisplayObjectContainer/dispose()
    at starling.display::Sprite/dispose()
    at starling.display::DisplayObjectContainer/removeChildAt()
    at starling.display::DisplayObjectContainer/removeChild()
    at GuildExpedition/dispose()
    at de.innogames.strategycity.main.service::ModuleLoaderService/_disposeModule()
    at de.innogames.strategycity.main.service::ModuleLoaderService/_onModuleRemovedFromStage()
    at flash.display::DisplayObjectContainer/removeChild()
    at de.innogames.strategycity.main.controller.modules::RemoveModuleCommand/execute()
    at org.robotlegs.base::CommandMap/execute()
    at org.robotlegs.base::CommandMap/routeEventToCommand()
    at Function/<anonymous>()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at org.robotlegs.mvcs::Actor/dispatch()
    at de.innogames.strategycity.main.service::ModuleLoaderService/unloadModule()
    at de.innogames.strategycity.main.controller::StateActionCommand/execute()
    at org.robotlegs.base::CommandMap/execute()
    at org.robotlegs.base::CommandMap/routeEventToCommand()
    at Function/<anonymous>()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at org.robotlegs.utilities.modular.mvcs::ModuleActor/dispatchToModules()
    at de.innogames.strategycity.expeditions.view.hud::GuildExpeditionHud/handleHudClick()
    at de.innogames.strategycity.shared.ui.hud::GameHudMediator/_handleGuildExpeditionsHudClick()
    at de.innogames.strategycity.shared.ui.hud::GameHudMediator/_handleClick()
    at Function/http://adobe.com/AS3/2006/builtin::apply()
    at SetIntervalTimer/onTimer()
    at flash.utils::Timer/_timerDispatch()
    at flash.utils::Timer/tick()

After contiune and Back to City

Code:
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
    at flash.display::DisplayObjectContainer/removeChild()
    at de.innogames.strategycity.main.controller.modules::RemoveModuleCommand/execute()
    at org.robotlegs.base::CommandMap/execute()
    at org.robotlegs.base::CommandMap/routeEventToCommand()
    at Function/<anonymous>()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at org.robotlegs.mvcs::Actor/dispatch()
    at de.innogames.strategycity.main.service::ModuleLoaderService/unloadModule()
    at de.innogames.strategycity.main.service::ModuleLoaderService/loadModule()
    at de.innogames.strategycity.main.controller::StateActionCommand/execute()
    at org.robotlegs.base::CommandMap/execute()
    at org.robotlegs.base::CommandMap/routeEventToCommand()
    at Function/<anonymous>()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at org.robotlegs.mvcs::Command/dispatch()
    at de.innogames.strategycity.shared.controller::OpenGuildExpeditionCommand/execute()
    at org.robotlegs.base::CommandMap/execute()
    at org.robotlegs.base::CommandMap/routeEventToCommand()
    at Function/<anonymous>()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at org.robotlegs.mvcs::Mediator/dispatch()
    at de.innogames.strategycity.main.view.cityhud.components.bottomLeft::MainButtonGroupMediator/_onGuildExpeditionClicked()
    at de.innogames.strategycity.main.view.cityhud.components.bottomLeft::MainButtonGroupMediator/_onButtonClicked()
    at org.robotlegs.base::EventMap/routeEventToListener()
    at Function/<anonymous>()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at de.innogames.strategycity.shared.ui::ImageButton/_onMouseUp()
    at de.innogames.strategycity.shared.ui.components.button::ResourceLoadingButton/_onMouseUp()


There is some another error if I get relic, but now I havent it. After I get relic I post it.

If only I knew anything about this technical stuff. I installed the Chroium flash debugger but have no idea where it is or how to use it. I've been messing around with Chrome's Developers tools. Anyway, here's a screenshot of Network Tab of me opening/closing the Continent Map window, I don't know if it's of any use;

Google Tools Network.JPG
 
Last edited by a moderator:

DeletedUser7942

Guest
What I don't get is how can they fix this, what seems to me the same issue, with the Event History Window in 1.97

  • The time to load the Event History screen was getting longer over time as new elements were added. Depending on the strength of your computer and the amount of entries to load, the long load could, for example, cause significant 'lag' after switching back to the city when the Event History would show up. We've significantly shortened the time it takes to open the Event History by having it only load the page of data that will be displayed. This does add loading when switching pages, but we think that this is an improvement to the overall experience. We'll keep an eye on the feedback!
  • Full Changelog 1.97 [Reference]
Yet seemingly ignore all the other windows that do the same?

Here was my test I did of the Event History Window before the update, it's the same results as the test I've done with the Research Window, cMap window etc;

Event History Window = Lag

After 1.97 it doesn't do that anymore.
 
Last edited by a moderator:

RedRed

Viceroy
What I don't get is how can they fix this, what seems to me the same issue, with the Event History Window in 1.97
Similar but not likely the same. Event history had problem that loaded a lot of data before showing, "blocking" the game each time it was called to popup; here the problem is not that amount of data, the problem is that the same data it is loaded and kept in memory every time you repeat an action. Stack traces of @Silveralius shows that there is a problem while disposing the resources (since an exception is thrown in the "dispose" methods, some or all of those resources that should be cleared are kept in memory, hence why memory increases - and from those traces seems much more a bug in the FoE code than a bug in Flash)
 
Last edited:

DeletedUser7942

Guest
the problem is that the same data it is loaded and kept in memory every time you repeat an action
Yes, thank you. I wonder if if/when they switch to html5 if that will take care of the issue even if it's not a flash issue. I think Tribal Wars 2 is html5, maybe I'll run some similar stress tests like I did here and see.
 

DeletedUser8316

Guest
Yes, thank you. I wonder if if/when they switch to html5 if that will take care of the issue even if it's not a flash issue. I think Tribal Wars 2 is html5, maybe I'll run some similar stress tests like I did here and see.

Flash and Shockwave (and Java) are all crap. These companies need to move on to better options. HTML5 will likely make these issues go away.

If you want to run the game on a more stable basis, use Opera. I can open GE as many times as I want and my memory usage will barely change. On Firefox the game was unplayable.

Firefox and Chrome both got rid of Flash support last year. You have to use older versions of both to have any luck with Flash not crashing.

Zarok, you guys should know that Chrome, Firefox, Edge and Safari DO NOT support Flash anymore. That is why it causes the browsers to crash/use too much memory. The game needs to be moved over to HTML5.
 
Top