<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Comments on: Benchmarking Tornado vs. Twisted Web vs. Tornado on Twisted	</title>
	<atom:link href="https://programmingzen.com/benchmarking-tornado-vs-twisted-web-vs-tornado-on-twisted/feed/" rel="self" type="application/rss+xml" />
	<link>https://programmingzen.com/benchmarking-tornado-vs-twisted-web-vs-tornado-on-twisted/</link>
	<description>Meditations on programming, startups, and technology</description>
	<lastBuildDate>Tue, 22 Dec 2009 08:36:22 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>
		By: Nicholas Piël &#187; Socket Benchmark of Asynchronous Servers in Python		</title>
		<link>https://programmingzen.com/benchmarking-tornado-vs-twisted-web-vs-tornado-on-twisted/#comment-8604</link>

		<dc:creator><![CDATA[Nicholas Piël &#187; Socket Benchmark of Asynchronous Servers in Python]]></dc:creator>
		<pubDate>Tue, 22 Dec 2009 08:36:22 +0000</pubDate>
		<guid isPermaLink="false">http://antoniocangiano.com/?p=1104#comment-8604</guid>

					<description><![CDATA[[...] async. approach called Tornado which is also using callbacks and recent benchmark show that it outperforms Twisted.A common heard argument against programming with callbacks is that it can get overly [...]]]></description>
			<content:encoded><![CDATA[<p>[&#8230;] async. approach called Tornado which is also using callbacks and recent benchmark show that it outperforms Twisted.A common heard argument against programming with callbacks is that it can get overly [&#8230;]</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: samuel Sutch		</title>
		<link>https://programmingzen.com/benchmarking-tornado-vs-twisted-web-vs-tornado-on-twisted/#comment-7790</link>

		<dc:creator><![CDATA[samuel Sutch]]></dc:creator>
		<pubDate>Thu, 17 Sep 2009 09:59:05 +0000</pubDate>
		<guid isPermaLink="false">http://antoniocangiano.com/?p=1104#comment-7790</guid>

					<description><![CDATA[is cogen  competitive?]]></description>
			<content:encoded><![CDATA[<p>is cogen  competitive?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: david		</title>
		<link>https://programmingzen.com/benchmarking-tornado-vs-twisted-web-vs-tornado-on-twisted/#comment-7763</link>

		<dc:creator><![CDATA[david]]></dc:creator>
		<pubDate>Tue, 15 Sep 2009 06:56:03 +0000</pubDate>
		<guid isPermaLink="false">http://antoniocangiano.com/?p=1104#comment-7763</guid>

					<description><![CDATA[what? I wanted to see EM benchmarks... could you make another post comparing EM with Tornado please?]]></description>
			<content:encoded><![CDATA[<p>what? I wanted to see EM benchmarks&#8230; could you make another post comparing EM with Tornado please?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Greg		</title>
		<link>https://programmingzen.com/benchmarking-tornado-vs-twisted-web-vs-tornado-on-twisted/#comment-7748</link>

		<dc:creator><![CDATA[Greg]]></dc:creator>
		<pubDate>Mon, 14 Sep 2009 18:07:14 +0000</pubDate>
		<guid isPermaLink="false">http://antoniocangiano.com/?p=1104#comment-7748</guid>

					<description><![CDATA[What command-line options did you use with httperf?  I&#039;d like to try this test against various Ruby async http servers.]]></description>
			<content:encoded><![CDATA[<p>What command-line options did you use with httperf?  I&#8217;d like to try this test against various Ruby async http servers.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Antonio Cangiano		</title>
		<link>https://programmingzen.com/benchmarking-tornado-vs-twisted-web-vs-tornado-on-twisted/#comment-7733</link>

		<dc:creator><![CDATA[Antonio Cangiano]]></dc:creator>
		<pubDate>Mon, 14 Sep 2009 06:46:23 +0000</pubDate>
		<guid isPermaLink="false">http://antoniocangiano.com/?p=1104#comment-7733</guid>

					<description><![CDATA[@Eugeny: The updated post ensures that all three web servers use epoll().

@Taylor: Yes, that&#039;s a good idea.]]></description>
			<content:encoded><![CDATA[<p>@Eugeny: The updated post ensures that all three web servers use epoll().</p>
<p>@Taylor: Yes, that&#8217;s a good idea.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Taylor Luk		</title>
		<link>https://programmingzen.com/benchmarking-tornado-vs-twisted-web-vs-tornado-on-twisted/#comment-7732</link>

		<dc:creator><![CDATA[Taylor Luk]]></dc:creator>
		<pubDate>Mon, 14 Sep 2009 06:39:21 +0000</pubDate>
		<guid isPermaLink="false">http://antoniocangiano.com/?p=1104#comment-7732</guid>

					<description><![CDATA[@antonio Thanks for this very interesting benchmark. I see that you have pulled down the EventMachine chart. I am aware that this post is focused on evented python servers. However, EventMachine and Twisted Python are both Evented framework for respective language. look forward more content on EventMachine since that EM server is pushing out some really nice numbers, perhaps a seperate post ?]]></description>
			<content:encoded><![CDATA[<p>@antonio Thanks for this very interesting benchmark. I see that you have pulled down the EventMachine chart. I am aware that this post is focused on evented python servers. However, EventMachine and Twisted Python are both Evented framework for respective language. look forward more content on EventMachine since that EM server is pushing out some really nice numbers, perhaps a seperate post ?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Eugueny Kontsevoy		</title>
		<link>https://programmingzen.com/benchmarking-tornado-vs-twisted-web-vs-tornado-on-twisted/#comment-7731</link>

		<dc:creator><![CDATA[Eugueny Kontsevoy]]></dc:creator>
		<pubDate>Mon, 14 Sep 2009 05:41:07 +0000</pubDate>
		<guid isPermaLink="false">http://antoniocangiano.com/?p=1104#comment-7731</guid>

					<description><![CDATA[Anotonio, thanks for the benchmark. But something is just not right here. There is no way one &quot;framework&quot; can beat another by so much. When it comes to massively parallel asynchronous I/O the bulk of the work is done by the kernel i.e. epoll() on Linux.

There are really two things going on:

a) I/O implementation (all of it is in C - for all your contenders)
b) Data marshaling b/w Ruby/Python and C 

I just don&#039;t see how one framework can be more performant than another. The differences you&#039;re seeing can only be attributed to:

a) Richness of implementation, i.e. do all these &quot;Hello world&quot; apps do full HTTP headers parsing and forming &quot;request objects&quot;? How about initializing/maintaining other aspects of maintaining a request state? I doubt we&#039;re looking at oranges-to-oranges here.

b) Error of configuration: did you make sure all of them rely on epoll()? This isn&#039;t as trivial as it may appear since I/O libraries have a habit of falling back to slower select() or poll() silently.]]></description>
			<content:encoded><![CDATA[<p>Anotonio, thanks for the benchmark. But something is just not right here. There is no way one &#8220;framework&#8221; can beat another by so much. When it comes to massively parallel asynchronous I/O the bulk of the work is done by the kernel i.e. epoll() on Linux.</p>
<p>There are really two things going on:</p>
<p>a) I/O implementation (all of it is in C &#8211; for all your contenders)<br />
b) Data marshaling b/w Ruby/Python and C </p>
<p>I just don&#8217;t see how one framework can be more performant than another. The differences you&#8217;re seeing can only be attributed to:</p>
<p>a) Richness of implementation, i.e. do all these &#8220;Hello world&#8221; apps do full HTTP headers parsing and forming &#8220;request objects&#8221;? How about initializing/maintaining other aspects of maintaining a request state? I doubt we&#8217;re looking at oranges-to-oranges here.</p>
<p>b) Error of configuration: did you make sure all of them rely on epoll()? This isn&#8217;t as trivial as it may appear since I/O libraries have a habit of falling back to slower select() or poll() silently.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Antonio Cangiano		</title>
		<link>https://programmingzen.com/benchmarking-tornado-vs-twisted-web-vs-tornado-on-twisted/#comment-7729</link>

		<dc:creator><![CDATA[Antonio Cangiano]]></dc:creator>
		<pubDate>Mon, 14 Sep 2009 03:11:07 +0000</pubDate>
		<guid isPermaLink="false">http://antoniocangiano.com/?p=1104#comment-7729</guid>

					<description><![CDATA[@Bob: Indeed. I&#039;m re-running all the benchmarks with httperf and will update this post very soon. Stay tuned.]]></description>
			<content:encoded><![CDATA[<p>@Bob: Indeed. I&#8217;m re-running all the benchmarks with httperf and will update this post very soon. Stay tuned.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Bob Aman		</title>
		<link>https://programmingzen.com/benchmarking-tornado-vs-twisted-web-vs-tornado-on-twisted/#comment-7728</link>

		<dc:creator><![CDATA[Bob Aman]]></dc:creator>
		<pubDate>Mon, 14 Sep 2009 02:40:43 +0000</pubDate>
		<guid isPermaLink="false">http://antoniocangiano.com/?p=1104#comment-7728</guid>

					<description><![CDATA[httperf is a better tool if you really care about useful statistics.]]></description>
			<content:encoded><![CDATA[<p>httperf is a better tool if you really care about useful statistics.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Antonio Cangiano		</title>
		<link>https://programmingzen.com/benchmarking-tornado-vs-twisted-web-vs-tornado-on-twisted/#comment-7725</link>

		<dc:creator><![CDATA[Antonio Cangiano]]></dc:creator>
		<pubDate>Mon, 14 Sep 2009 01:13:51 +0000</pubDate>
		<guid isPermaLink="false">http://antoniocangiano.com/?p=1104#comment-7725</guid>

					<description><![CDATA[Thanks for stopping by Glyph. No matter how trivial the benchmark, I&#039;m interested in its accuracy. If ab cannot be trusted, I&#039;ll run the tests with httperf or siege and update my results.]]></description>
			<content:encoded><![CDATA[<p>Thanks for stopping by Glyph. No matter how trivial the benchmark, I&#8217;m interested in its accuracy. If ab cannot be trusted, I&#8217;ll run the tests with httperf or siege and update my results.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
