Acknowledged
CIQQA-3372

bug: VSC extension burns CPU even when idle

I have VSC Monkey C extension version 1.1.2 and I noticed that opening some of my projects and then not touching anything burns lot of CPU. One of my projects when I open it uses 15% more CPU on a MacBook Pro with M3 chip. I'm not talking about the burst of CPU in the first seconds after I open a project. I'm talking about a constant 15% higher CPU for as long as you want to measure, even when not touching the keyboard and the mouse.

After playing with it a bit I realized that this is caused by the releases/ folder in the project, in which I save the output of bin/optimized/ for each release. It's the output of the optimization step of the Prettier Monkey C, and basically these directories have a "copy" of the whole project multiple times (one for each device in the manifest). In other words these are Monkey C source files. None of these directories are included in the project in terms of the jungle file's pathes. Just having lots of mc files under any directory under the root of the project reproduces this issue.

I understand that typing constantly recompiles the project, but not touching any input should not do anything!

Parents
  • This bug sounds similar to one that was reported before where the extension would try to open every file that exists under the project folder, leading to an error about opening too many files under macos. I think the extension was opening files under bin/, in that case.

    Does the problem go away if you add releases/ to .gitignore? I'd guess that's not really a solution for you if you actually source control the generated source under releases/.

Comment
  • This bug sounds similar to one that was reported before where the extension would try to open every file that exists under the project folder, leading to an error about opening too many files under macos. I think the extension was opening files under bin/, in that case.

    Does the problem go away if you add releases/ to .gitignore? I'd guess that's not really a solution for you if you actually source control the generated source under releases/.

Children