I have recently been working on some logic for use in an AnimGraph using Blueprints and notices I was having a memory leak (~5MB/s) so started investigating further. It took me a while to finally find the cause but here is what caused it.
I initially created a macro with multiple inputs and outputs. I then connected this into my graph, but not all inputs were connected. I noticed that I did not have default values on these empty inputs so I went back to the macro and added them in, compiled and saved. These defaults never got added to the existing instances of the nodes leaving empty inputs. When running it had the correct output values so it seems the defaults were used but not shown which leads me to think the leak is something along the lines of when it finds the uninitialized inputs it creates a new instance of the node which is used, however it’s never deleted or remembered so the next time it comes to the node again it creates another new instance of the node and so on causing the memory to build up.
Typing in the default values stops the memory build up and once entered I can’t delete them again as it springs back to the defaults. I have attached a video to show the leak with the empty inputs and then the leak stopping when values are entered.
I had to zip the video as it was slightly over the 5.2MB limit