← Back to context

Comment by wannabe44

5 hours ago

This. I don't want your browser engine to use all my cores. I want the rest of my cores to be compiling C++.

It is not really about reserving cores.

Just that - even if you distribute work to a number of cores (that itself limited), you still need to sync the execution. So unless you have some bigger chunks of computation, the performance increase will be very small.

And yes, there are bigger chunks of work when rendering a web page, but that is typically already outside the css engine and can be distributed without having to rewrite the core engine.

But my comments are a bit generic here, so I am open to comments regarding this particular project.

  • Servo also had some other novel architectural ideas IIRC, not directly related to paralelism, but it's been a while since I was looking into that, I don't remember much.

I want all my software to use all my cores, because I'll have twice as many within 5 years.

  • Will you though? I like the adage: "We used to write software like hardware will get twice as fast every 2 years. Now we should write software like hardware will get twice as expensive every 2 years."

that's something you, the user, are free to enforce with priorities, pinning, etc.

It's more efficient to use all the cores briefly and go back to whatever background task than have long running mixed load. This also matches performance expectations, you generally want the web page displayed _now_ and the compile to finish ASAP while accepting it will take _some_ time.