<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.0.12-alpha" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: How fast can Erlang create processes?</title>
	<link>http://www.lshift.net/blog/2006/09/10/how-fast-can-erlang-create-processes</link>
	<description>What happens at LShift</description>
	<pubDate>Tue, 06 Jan 2009 19:05:14 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.12-alpha</generator>

	<item>
		<title>by: def ZA</title>
		<link>http://www.lshift.net/blog/2006/09/10/how-fast-can-erlang-create-processes#comment-60113</link>
		<pubDate>Sat, 02 Jun 2007 12:26:19 +0000</pubDate>
		<guid>http://www.lshift.net/blog/2006/09/10/how-fast-can-erlang-create-processes#comment-60113</guid>
					<description>&lt;p&gt;"I don't just yet fancy the job of trawling through the megabytes of strace output looking for patterns, " &lt;/p&gt;

&lt;p&gt;You could maybe use the summary flag on strace to "strace -c" to give you a breakdown.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>&#8220;I don&#8217;t just yet fancy the job of trawling through the megabytes of strace output looking for patterns, &#8221; </p>
<p>You could maybe use the summary flag on strace to &#8220;strace -c&#8221; to give you a breakdown.</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Samuel Tardieu</title>
		<link>http://www.lshift.net/blog/2006/09/10/how-fast-can-erlang-create-processes#comment-9977</link>
		<pubDate>Wed, 13 Sep 2006 12:36:10 +0000</pubDate>
		<guid>http://www.lshift.net/blog/2006/09/10/how-fast-can-erlang-create-processes#comment-9977</guid>
					<description>&lt;p&gt;It does make a lot of poll() call, but also much much more times() and gettimeofday() calls (700 times more than poll()).&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>It does make a lot of poll() call, but also much much more times() and gettimeofday() calls (700 times more than poll()).</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: tonyg</title>
		<link>http://www.lshift.net/blog/2006/09/10/how-fast-can-erlang-create-processes#comment-9976</link>
		<pubDate>Wed, 13 Sep 2006 10:42:47 +0000</pubDate>
		<guid>http://www.lshift.net/blog/2006/09/10/how-fast-can-erlang-create-processes#comment-9976</guid>
					<description>&lt;p&gt;@ratatask: yes, that'd probably give some idea. I don't just yet fancy the job of trawling through the megabytes of strace output looking for patterns, though :-)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>@ratatask: yes, that&#8217;d probably give some idea. I don&#8217;t just yet fancy the job of trawling through the megabytes of strace output looking for patterns, though :-)</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: ratatask</title>
		<link>http://www.lshift.net/blog/2006/09/10/how-fast-can-erlang-create-processes#comment-9967</link>
		<pubDate>Wed, 13 Sep 2006 06:00:43 +0000</pubDate>
		<guid>http://www.lshift.net/blog/2006/09/10/how-fast-can-erlang-create-processes#comment-9967</guid>
					<description>&lt;p&gt;strace the erlang process if you want to see what it's doing using
system time.
I wouldn't be surprised if it was time reading, or a select/poll loop :-&#124;&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>strace the erlang process if you want to see what it&#8217;s doing using<br />
system time.<br />
I wouldn&#8217;t be surprised if it was time reading, or a select/poll loop :-|</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: SM Smithfield</title>
		<link>http://www.lshift.net/blog/2006/09/10/how-fast-can-erlang-create-processes#comment-9964</link>
		<pubDate>Wed, 13 Sep 2006 00:22:34 +0000</pubDate>
		<guid>http://www.lshift.net/blog/2006/09/10/how-fast-can-erlang-create-processes#comment-9964</guid>
					<description>&lt;p&gt;Just ran your test on a Mac (10.4 G5 2.1Ghz 512kB cache)
7&#62; c(spawntest).
{ok,spawntest}
8&#62; spawntest:serial&lt;em&gt;spawn(1).
6.48313e+5
9&#62; spawntest:serial&lt;/em&gt;spawn(10).
6.48131e+5
10&#62; spawntest:serial&lt;em&gt;spawn(10).
6.36188e+5
11&#62; spawntest:serial&lt;/em&gt;spawn(100).
6.33489e+5
12&#62; spawntest:serial_spawn(100).
7.06393e+5&lt;/p&gt;

&lt;p&gt;I think these fellows might be onto something.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Just ran your test on a Mac (10.4 G5 2.1Ghz 512kB cache)<br />
7&gt; c(spawntest).<br />
{ok,spawntest}<br />
8&gt; spawntest:serial<em>spawn(1).<br />
6.48313e+5<br />
9&gt; spawntest:serial</em>spawn(10).<br />
6.48131e+5<br />
10&gt; spawntest:serial<em>spawn(10).<br />
6.36188e+5<br />
11&gt; spawntest:serial</em>spawn(100).<br />
6.33489e+5<br />
12&gt; spawntest:serial_spawn(100).<br />
7.06393e+5</p>
<p>I think these fellows might be onto something.</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Paul Crowley</title>
		<link>http://www.lshift.net/blog/2006/09/10/how-fast-can-erlang-create-processes#comment-9868</link>
		<pubDate>Mon, 11 Sep 2006 10:16:02 +0000</pubDate>
		<guid>http://www.lshift.net/blog/2006/09/10/how-fast-can-erlang-create-processes#comment-9868</guid>
					<description>&lt;p&gt;malloc and free aren't syscalls - malloc calls sbrk or similar if it needs more memory, but otherwise it manages the heap in userspace.  It should have a certain amount of hysteresis before it tries to give any memory back to kernel space, so all the malloc and free stuff should be happening entirely in userspace.&lt;/p&gt;

&lt;p&gt;Of course being a garbage-collected language it won't be calling malloc and free - it'll be directly calling sbrk or similar (mmap in fact AIUI) and managing the memory returned itself.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>malloc and free aren&#8217;t syscalls - malloc calls sbrk or similar if it needs more memory, but otherwise it manages the heap in userspace.  It should have a certain amount of hysteresis before it tries to give any memory back to kernel space, so all the malloc and free stuff should be happening entirely in userspace.</p>
<p>Of course being a garbage-collected language it won&#8217;t be calling malloc and free - it&#8217;ll be directly calling sbrk or similar (mmap in fact AIUI) and managing the memory returned itself.</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: matthew</title>
		<link>http://www.lshift.net/blog/2006/09/10/how-fast-can-erlang-create-processes#comment-9849</link>
		<pubDate>Mon, 11 Sep 2006 07:49:16 +0000</pubDate>
		<guid>http://www.lshift.net/blog/2006/09/10/how-fast-can-erlang-create-processes#comment-9849</guid>
					<description>&lt;p&gt;My guess is that the kernel time is syscalls to malloc and free for the allocation and deallocation of stack and heap for each process.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>My guess is that the kernel time is syscalls to malloc and free for the allocation and deallocation of stack and heap for each process.</p>
]]></content:encoded>
				</item>
</channel>
</rss>
