Timeline for Is there something that prevents a multithreaded C# compiler implementation?
Current License: CC BY-SA 3.0
10 events
| when toggle format | what | by | license | comment | |
|---|---|---|---|---|---|
| Sep 6, 2016 at 14:38 | comment | added | Robert Harvey |
@OldFart: Once I/O becomes bottlenecked, throwing more threads at it won't help. -- Exactly my situation.
|
|
| Sep 6, 2016 at 14:26 | comment | added | OldFart | If something is CPU bound, it means that each thread will saturate one core. So increasing the number of threads to match the number of cores is useful. If something is I/O bound, then throwing more threads at it may help because it overlaps the I/O operations. In this case, the optimal number of threads is mostly unrelated to the number of cores. Once I/O becomes bottlenecked, throwing more threads at it won't help. | |
| Sep 2, 2016 at 22:09 | comment | added | Robert Harvey | @oldfart: Could be. Last time I tested this was on a utility I wrote that processed very large data files. I assumed that I was I/O bound because I was reading data as fast as the interface would allow, but perhaps I was actually CPU bound and didn't know it. | |
| Sep 2, 2016 at 20:40 | comment | added | OldFart | I think you may have meant to say "CPU bound", not "I/O bound". | |
| Sep 2, 2016 at 17:09 | vote | accept | Scott Whitlock | ||
| Sep 2, 2016 at 17:02 | comment | added | Robert Harvey |
A "web of references" is the using statements at the top of each C# file, referencing various external .NET libraries and classes in the .NET Framework. In C++, this sort of code is already incorporated into each class file with includes. So basically you're trading one problem for another.
|
|
| Sep 2, 2016 at 16:56 | comment | added | Scott Whitlock | I think this hints at an answer: "Visual Basic and C# methods are essentially standalone once parsed and can be compiled in parallel under Roslyn." A full answer needs to explain what about C# makes further parallelism impractical. @Euphoric suggests it's a "web of references" but I'd like some more explanation. | |
| Sep 2, 2016 at 16:55 | comment | added | Robert Harvey | That doesn't surprise me. C++ has a primary emphasis on performance, and "you don't pay for what you don't use," so the picture is a bit more complicated than just adding threads. | |
| Sep 2, 2016 at 16:51 | comment | added | Scott Whitlock | I've been using VS2013 and Roslyn comes standard in VS2015. You can download and use Roslyn in VS2013 with a NuGet package so tried rebuilding my 21-project solution. The original rebuild time is about 30 seconds, but the new rebuild time with Roslyn is a little over 60 seconds. | |
| Sep 2, 2016 at 15:50 | history | answered | Robert Harvey | CC BY-SA 3.0 |