<?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"
	>
<channel>
	<title>Comments on: Improving JPSpan Performance with an Object Pool</title>
	<atom:link href="http://blog.joshuaeichorn.com/archives/2005/04/22/improving-jpspan-performance-with-an-object-pool/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.joshuaeichorn.com/archives/2005/04/22/improving-jpspan-performance-with-an-object-pool/</link>
	<description>The weblog of Joshua Eichorn, AJAX, PHP and Open Source</description>
	<pubDate>Wed, 20 Aug 2008 17:12:06 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1-alpha</generator>
		<item>
		<title>By: BrianJava &#187; AJAX FAQ for the Java Developer</title>
		<link>http://blog.joshuaeichorn.com/archives/2005/04/22/improving-jpspan-performance-with-an-object-pool/#comment-5874</link>
		<dc:creator>BrianJava &#187; AJAX FAQ for the Java Developer</dc:creator>
		<pubDate>Tue, 28 Feb 2006 07:28:51 +0000</pubDate>
		<guid isPermaLink="false">http://blog.joshuaeichorn.com/archives/2005/04/22/improving-jpspan-performance-with-an-object-pool/#comment-5874</guid>
		<description>[...] Using this closures insures that the proper callback function associated with a specific AJAX interaction is called. Caution should still be taken when creating multiple closure objects in that make XmlHttpRequests as to there is a limited number of sockets that are used to make requests at any given time. Because there are limited number of requests that can be made concurrently. Internet Explorer for example only allows for two conncurrent AJAX requests at any given time. Other browsers may allow more but it is generally between three and five requests. You may choose to use pool of AJAXInteraction objects. [...]</description>
		<content:encoded><![CDATA[<p>[...] Using this closures insures that the proper callback function associated with a specific AJAX interaction is called. Caution should still be taken when creating multiple closure objects in that make XmlHttpRequests as to there is a limited number of sockets that are used to make requests at any given time. Because there are limited number of requests that can be made concurrently. Internet Explorer for example only allows for two conncurrent AJAX requests at any given time. Other browsers may allow more but it is generally between three and five requests. You may choose to use pool of AJAXInteraction objects. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joshua Eichorn</title>
		<link>http://blog.joshuaeichorn.com/archives/2005/04/22/improving-jpspan-performance-with-an-object-pool/#comment-4186</link>
		<dc:creator>Joshua Eichorn</dc:creator>
		<pubDate>Thu, 07 Jul 2005 21:07:17 +0000</pubDate>
		<guid isPermaLink="false">http://blog.joshuaeichorn.com/archives/2005/04/22/improving-jpspan-performance-with-an-object-pool/#comment-4186</guid>
		<description>Well I have no clue what Konqueror supports I would guess it doesn't have a full XmlHttpRequest implementation, if you know of any docs let me know and i'll take a look.</description>
		<content:encoded><![CDATA[<p>Well I have no clue what Konqueror supports I would guess it doesn&#8217;t have a full XmlHttpRequest implementation, if you know of any docs let me know and i&#8217;ll take a look.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: LCardoso</title>
		<link>http://blog.joshuaeichorn.com/archives/2005/04/22/improving-jpspan-performance-with-an-object-pool/#comment-4185</link>
		<dc:creator>LCardoso</dc:creator>
		<pubDate>Thu, 07 Jul 2005 20:58:07 +0000</pubDate>
		<guid isPermaLink="false">http://blog.joshuaeichorn.com/archives/2005/04/22/improving-jpspan-performance-with-an-object-pool/#comment-4185</guid>
		<description>I forgot to mention: "...it works fine with firefox but not with _Konqueror_."
I tested with Konqueror 3.4 (Ubuntu 5.04).</description>
		<content:encoded><![CDATA[<p>I forgot to mention: &#8220;&#8230;it works fine with firefox but not with _Konqueror_.&#8221;<br />
I tested with Konqueror 3.4 (Ubuntu 5.04).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joshua Eichorn</title>
		<link>http://blog.joshuaeichorn.com/archives/2005/04/22/improving-jpspan-performance-with-an-object-pool/#comment-4184</link>
		<dc:creator>Joshua Eichorn</dc:creator>
		<pubDate>Thu, 07 Jul 2005 16:52:24 +0000</pubDate>
		<guid isPermaLink="false">http://blog.joshuaeichorn.com/archives/2005/04/22/improving-jpspan-performance-with-an-object-pool/#comment-4184</guid>
		<description>I'm not seeing this error in either IE or Firefox, can you give me a step by step on what you did to get the error</description>
		<content:encoded><![CDATA[<p>I&#8217;m not seeing this error in either IE or Firefox, can you give me a step by step on what you did to get the error</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: LCardoso</title>
		<link>http://blog.joshuaeichorn.com/archives/2005/04/22/improving-jpspan-performance-with-an-object-pool/#comment-4183</link>
		<dc:creator>LCardoso</dc:creator>
		<pubDate>Thu, 07 Jul 2005 16:47:28 +0000</pubDate>
		<guid isPermaLink="false">http://blog.joshuaeichorn.com/archives/2005/04/22/improving-jpspan-performance-with-an-object-pool/#comment-4183</guid>
		<description>Hi,

the helloworld demo produces an " [Client_Error] [413] Request Entity Too Large while calling helloworld.randomstring()" but works fine with Firefox.

Do you know why?</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>the helloworld demo produces an &#8221; [Client_Error] [413] Request Entity Too Large while calling helloworld.randomstring()&#8221; but works fine with Firefox.</p>
<p>Do you know why?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joshua Eichorn</title>
		<link>http://blog.joshuaeichorn.com/archives/2005/04/22/improving-jpspan-performance-with-an-object-pool/#comment-3036</link>
		<dc:creator>Joshua Eichorn</dc:creator>
		<pubDate>Thu, 28 Apr 2005 19:56:31 +0000</pubDate>
		<guid isPermaLink="false">http://blog.joshuaeichorn.com/archives/2005/04/22/improving-jpspan-performance-with-an-object-pool/#comment-3036</guid>
		<description>Link is fixed.

I'm not sure what the solution memory wise is, im just creating more proxied objects so a pool seemed the way to go for that since the object might be quite large.

At just the XMLHTTPRequest level the overhead wouldn't be quite so large but maybe a pool still makes sense since you'll want the ability to limit the # of outstanding requests, both to limit server load and to keep the browser for having "weird" problems.</description>
		<content:encoded><![CDATA[<p>Link is fixed.</p>
<p>I&#8217;m not sure what the solution memory wise is, im just creating more proxied objects so a pool seemed the way to go for that since the object might be quite large.</p>
<p>At just the XMLHTTPRequest level the overhead wouldn&#8217;t be quite so large but maybe a pool still makes sense since you&#8217;ll want the ability to limit the # of outstanding requests, both to limit server load and to keep the browser for having &#8220;weird&#8221; problems.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Harry Fuecks</title>
		<link>http://blog.joshuaeichorn.com/archives/2005/04/22/improving-jpspan-performance-with-an-object-pool/#comment-3035</link>
		<dc:creator>Harry Fuecks</dc:creator>
		<pubDate>Thu, 28 Apr 2005 19:38:54 +0000</pubDate>
		<guid isPermaLink="false">http://blog.joshuaeichorn.com/archives/2005/04/22/improving-jpspan-performance-with-an-object-pool/#comment-3035</guid>
		<description>Oh - one other thing - the link to objectPool.js seems to be broken.</description>
		<content:encoded><![CDATA[<p>Oh - one other thing - the link to objectPool.js seems to be broken.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Harry Fuecks</title>
		<link>http://blog.joshuaeichorn.com/archives/2005/04/22/improving-jpspan-performance-with-an-object-pool/#comment-3034</link>
		<dc:creator>Harry Fuecks</dc:creator>
		<pubDate>Thu, 28 Apr 2005 19:37:23 +0000</pubDate>
		<guid isPermaLink="false">http://blog.joshuaeichorn.com/archives/2005/04/22/improving-jpspan-performance-with-an-object-pool/#comment-3034</guid>
		<description>"I would like to see this fixed with an pool of XMLHttpRequest objects at the JPSpan level, however im sure this will take some time so I have a solution for you today."

Got two minds about this. On the one hand - agree - this is something someone using JPSpan should, ideally, not have to care about and as I'm saying JPSpan is about making life easy, it should do just that.

On the other I'm not yet convinced it can be handled transparently in JPSpan without resulting in stranges bugs, and so "forcing" this onto the user means that the best decision will be made for their specific requirements. I really need to do some more testing to nail this stuff down exactly but here's some of the issues;

- Using an XMLHttpRequest object that is already making an async request DOES result in wierdness. Exactly what kind of wierdness I can't say exactly - had some strange experiences while working on the earlier parts of JPSpan but was able to narrow it down well enough thanks to other bugs and issues I was dealing with at that time.

- Creating more than "X" XMLHttpRequest objects and having them all make async requests at the same time _may_ also lead to wierdness. Andreas Halter (http://andreashalter.ch/) tipped me off about this. He's done a fair deal with &lt;a href="http://xul.andreashalter.ch/" rel="nofollow"&gt;XUL&lt;/a&gt; and mentioned he'd run into a problem where when you have more than, say, 10 requests in progress at the same time, the responses start getting mixed and you might get the response from one request coming back via a seperate object. I haven't been able to reproduce this myself but it makes me nervous.

- What are the memory / object setup costs here? Is it better to have a pool of objects ready to serve requests (as is done in &lt;a href="http://www.whitefrost.com/servlet/connector?file=reference/2003/06/17/libXmlRequest.html" rel="nofollow"&gt;libXMLRequest&lt;/a&gt;) reducing the perceived performance overhead once the page is loaded, at the cost of memory and extra code to manage the pool. Or is it better to simply create a new object when needed?

Anyway - going to experiment further in this direction and see how it goes.</description>
		<content:encoded><![CDATA[<p>&#8220;I would like to see this fixed with an pool of XMLHttpRequest objects at the JPSpan level, however im sure this will take some time so I have a solution for you today.&#8221;</p>
<p>Got two minds about this. On the one hand - agree - this is something someone using JPSpan should, ideally, not have to care about and as I&#8217;m saying JPSpan is about making life easy, it should do just that.</p>
<p>On the other I&#8217;m not yet convinced it can be handled transparently in JPSpan without resulting in stranges bugs, and so &#8220;forcing&#8221; this onto the user means that the best decision will be made for their specific requirements. I really need to do some more testing to nail this stuff down exactly but here&#8217;s some of the issues;</p>
<p>- Using an XMLHttpRequest object that is already making an async request DOES result in wierdness. Exactly what kind of wierdness I can&#8217;t say exactly - had some strange experiences while working on the earlier parts of JPSpan but was able to narrow it down well enough thanks to other bugs and issues I was dealing with at that time.</p>
<p>- Creating more than &#8220;X&#8221; XMLHttpRequest objects and having them all make async requests at the same time _may_ also lead to wierdness. Andreas Halter (http://andreashalter.ch/) tipped me off about this. He&#8217;s done a fair deal with <a href="http://xul.andreashalter.ch/" rel="nofollow">XUL</a> and mentioned he&#8217;d run into a problem where when you have more than, say, 10 requests in progress at the same time, the responses start getting mixed and you might get the response from one request coming back via a seperate object. I haven&#8217;t been able to reproduce this myself but it makes me nervous.</p>
<p>- What are the memory / object setup costs here? Is it better to have a pool of objects ready to serve requests (as is done in <a href="http://www.whitefrost.com/servlet/connector?file=reference/2003/06/17/libXmlRequest.html" rel="nofollow">libXMLRequest</a>) reducing the perceived performance overhead once the page is loaded, at the cost of memory and extra code to manage the pool. Or is it better to simply create a new object when needed?</p>
<p>Anyway - going to experiment further in this direction and see how it goes.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
