That looks like the .NET garbage collector at work to me. How much total memory do you have, and how much is free when you start B4J?
I've got a total of 8 GB RAM, and around 5 GB free when I start B4J. When I load my large project, B4J is at around 280 MB, slowly building up, sometimes to 1.3 GB, but going down if I'm doing something else for a while but leaving B4J open.
The only .NET scenario that I know of that fits this is when you are using .NET objects, like images, that are a small managed overlay to very large native objects like bitmaps. The .NET garbage collector only sees the small managed part and not the large large native part so doesn't know that memory pressure is building. I wonder if the IDE might be saving the rendered image of each code module when you switch to another one and you do have 70 modules. Perhaps you could try loading the project and without editing any code just switch from module to module and see whats happens to the memory use.
I did that. There was no rise in RAM consumption when I opened around 30 modules, still no change when I switched between them, and again no change when I scrolled down in several of them, BUT THEN, I press SPACE once, it goes up by a 100, and higher as I keep doing that to different parts of the code.
Thanks for the help. Two points might help shed light on matters:
1. I noticed the same unreasonable RAM thing happening in B4A as well, with a very small 3-module project.
2. A THEORY: Is it possible it would have something to do with the intellisense system? When I pressed space bar, I turned a valid line of code to one containing errors (underlined with red), and RAM consumption jumped, then I pressed BACKSPACE and removed the error, and it jumps again. I noticed there is also a lot of CPU activity when that system kicks in. Any way I can turn that intelligent error detector off to see if there is any change?