RAFCON icon indicating copy to clipboard operation
RAFCON copied to clipboard

Memory consumption to high for longer runtimes

Open franzlst opened this issue 4 years ago • 4 comments

If RAFCON runs for several hours (in my experience > 4), then all my RAM (8GB, 4GB used by other applications) was consumed.

This could have several reasons:

  • the logging output takes too much memory (is the memory really freed, if the logging is cleared?)
  • the execution history takes too much memory (is the memory really freed, if "Clean History" is pressed)
  • old models still reside in memory although they are not used any more

Originally created by @sebastian-brunner ([email protected]) at 2017-07-19 08:12:27+00:00 (moved from RMC internal repository)

franzlst avatar Apr 17 '20 09:04 franzlst

I think one more reason could be your code in the ExecutionStates, possibly creating various objects.

Originally created by @franzlst ([email protected]) at 2017-07-19 09:35:10+00:00 (moved from RMC internal repository)

franzlst avatar Apr 17 '20 09:04 franzlst

Generally, we have to look for cyclic references and not objects that are generated but without reference that are hold by other instances.

@franzlst So various objects sounds like a lot but not like references or something what the gc can not resolve. Some more words on which part of the ExecutionState you are pointing would be good or maybe you actually include into this the HierarchyState and other parts of the execution procedure, too?!

Originally created by @Rbelder at 2017-07-19 13:24:13+00:00 (moved from RMC internal repository)

franzlst avatar Apr 17 '20 09:04 franzlst

With "your code in the ExecutionStates" I was referring to the script.py. We have no influence on that.

Originally created by @franzlst ([email protected]) at 2017-07-19 15:22:47+00:00 (moved from RMC internal repository)

franzlst avatar Apr 17 '20 09:04 franzlst

I would extend this issue by the request for a test scenario where the memory consumption is tracked for like some thousand state executions and the opening and modification of states and state machines.

This test is an optional test and maybe should be written in an environment that allows to check for memory usage while run-time and especially nice it would be if it could run in the setup we have had before refactoring the destruction-pattern of RAFCON GUI or core objects, see #414.

After this the issue should be closed because we made a lot improvements in this field already.

Originally created by @Rbelder at 2018-03-01 14:54:08+00:00 (moved from RMC internal repository)

franzlst avatar Apr 17 '20 09:04 franzlst