Sutter's ISO C++ Trip Report - The best compliment is when someone else steals your ideas....

Steven Schveighoffer schveiguy at gmail.com
Thu Jul 19 09:44:16 UTC 2018


On 7/18/18 1:58 AM, John Carter wrote:
> On Friday, 13 July 2018 at 13:15:39 UTC, Steven Schveighoffer wrote:
> 
>> But it doesn't scale if you use OS processes, it's too heavyweight. Of 
>> course, it depends on the application. If you only need 100 concurrent 
>> connections, processes might be OK.
> 
> I think you may have fallen for Microsoft FUD.
> 
> In the Early Days of Windows Microsoft was appalling Bad at multiple 
> processes....
> 
> Rather than fix their OS, they cranked up their Marketing machine and 
> Hyped threads as "Light Weight Processes".

Wikipedia [1] seems to have a lot of references to "Light weight 
processes" from Unixy sources. Seems more like a good definition of 
thread than FUD.

> Unixy land has had "COW" (Copy on Write) page handling for years and 
> years and process creation and processes are light weight.

That depends on how much memory has to be marked as COW. It's definitely 
more heavyweight than thread creation, which does none of that.

> There are very very few Good reasons for threads, but threads being 
> "light weight processes" is definitely not one of them

Interesting, but I wasn't talking about using threads, vibe.d uses 
fibers, and can scale much better than using processes or threads alone.

See dconf presentations from Vladimir Panteleev [2] and Ali Chereli [3] 
to see why I was drawn to this conclusion.

Besides, using processes if you are ONLY going to read from the shared 
state makes some sense, but as soon as you need to change the shared 
state, you need to devise some mechanism to communicate that back to the 
main process. With threads/fibers, it's trivial.

With web services, most of the time the shared state you want elsewhere 
anyway (to make it persistent), so it's a better fit for processes than 
most program domains.

-Steve

[1] https://en.wikipedia.org/wiki/Light-weight_process
[2] https://www.youtube.com/watch?v=Zs8O7MVmlfw
[3] https://www.youtube.com/watch?v=7FJYc0Ydewo


More information about the Digitalmars-d mailing list