Why does Unity use so many processes?

I am using 2019.1.8f1 and creating a 2d game. I just looked at my task manager and I have 4 separate instances of Unity Hub running and Unity Editor has 11 processes running

4 console window hosts
3 unity shader compilers
1 editor
1 crashhandler
1 node js.server
1 unity helper

Is it really necessary to have all these processes running? Why the need for 4 instances of the Unity Hub?

why 3 unity shade compilers and 4 console window hosts?

and why the note.js server-side javascript?

Stuff like client side collaborate are written in Javascript. I’m assuming other parts too. I guess they rely on node.js, because everything horrible needs a dependency on node.js.

3 Likes

node.js is used by a number of .Net tools, VS uses it MSBuild might also. Shader compilers are undoubtedly not concurrent internally, so processes is how they get concurrent compilation.

Processes can provide a good way to completely separate things. Build related stuff I wouldn’t want in the engine itself. And outside of node none of it is really using much ram.

node.js is not installed by default with Visual Studio; it’s not required to use the community tools with Unity.

Node.js is used by Unity Package Manager and the VS Service Hub. Unity Hub is launched by the editor by default, but I too find it buggy and don’t really need it so have posted a request to make it option here .

Node.js is not installed in my system but I have no problem running the Hub nor the Package Manager.

Seems to have installed itself here. The VS Service Hub is using it, not Unity Hub

It’s a node installed in each version of Unity in “~\Editor\Data\Tools” and ServiceHub.Host.Node.x86 is installed in “~\Visual Studio Community 2019\Common7\ServiceHub\Hosts\ServiceHub.Host.Node.x86”.

The Node.js I mention is the one we have to install through Visual Studio Installer.

Yes, indeed.