<?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: Azureus is Slow Because of Java?</title>
	<atom:link href="http://brennan.offwhite.net/blog/2006/10/26/azureus-is-slow-because-of-java/feed/" rel="self" type="application/rss+xml" />
	<link>http://brennan.offwhite.net/blog/2006/10/26/azureus-is-slow-because-of-java/</link>
	<description>My Experiences with Software Development</description>
	<pubDate>Tue, 07 Oct 2008 19:50:53 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: George</title>
		<link>http://brennan.offwhite.net/blog/2006/10/26/azureus-is-slow-because-of-java/#comment-12382</link>
		<dc:creator>George</dc:creator>
		<pubDate>Sat, 18 Nov 2006 10:38:53 +0000</pubDate>
		<guid isPermaLink="false">http://brennan.offwhite.net/blog/2006/10/26/azureus-is-slow-because-of-java/#comment-12382</guid>
		<description>I have same problems with Azureus. Seems that Java is bad choice for building bigger desktop applications, because of its poor performance. Azureus has great functions, but causes terrible slowdown. Moving to uTorrent again.</description>
		<content:encoded><![CDATA[<p>I have same problems with Azureus. Seems that Java is bad choice for building bigger desktop applications, because of its poor performance. Azureus has great functions, but causes terrible slowdown. Moving to uTorrent again.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: brennan</title>
		<link>http://brennan.offwhite.net/blog/2006/10/26/azureus-is-slow-because-of-java/#comment-10004</link>
		<dc:creator>brennan</dc:creator>
		<pubDate>Sun, 29 Oct 2006 19:52:26 +0000</pubDate>
		<guid isPermaLink="false">http://brennan.offwhite.net/blog/2006/10/26/azureus-is-slow-because-of-java/#comment-10004</guid>
		<description>I do not believe it is simply FUD you should dismiss if the source which raised the issue is Java Lobby.  And as I explained, normally Java is fine.  But when handling many network connections in a BitTorrent or Gnutella scenario, it appears to have a performance issue.  My guess is that the creation of these temporary objects causes the short term generational memory to fill up so that it slows down the whole application.  Perhaps that could be improved by pooling the objects used here, if that can be done for sockets like it is often done for database connections.  That is doubtful because each remote address is unique so a native socket has to be created which is what is the costly part.

I have also considered another issue with Java applications that perpetuates the performance concern is that developers tend to use Swing improperly.  It is a single threaded GUI and without proper use of secondary threads to carry out background tasks it can cause the GUI to become sluggish.  And too many threads can chew up the processor and slow down the entire system.  Also, locking code blocks for thread protection also causes thrashing on the processor which damages performance.  When this sort of performance degredation happens often enough, I believe it shows a weakness somewhere in the platform perhaps in documentation, language features or profiling tools to get into the problem and resolve it.  If that is not the case maybe the Azureus team has not considered this to be an issue.  The right people looking at the problem should be able to fix it.</description>
		<content:encoded><![CDATA[<p>I do not believe it is simply FUD you should dismiss if the source which raised the issue is Java Lobby.  And as I explained, normally Java is fine.  But when handling many network connections in a BitTorrent or Gnutella scenario, it appears to have a performance issue.  My guess is that the creation of these temporary objects causes the short term generational memory to fill up so that it slows down the whole application.  Perhaps that could be improved by pooling the objects used here, if that can be done for sockets like it is often done for database connections.  That is doubtful because each remote address is unique so a native socket has to be created which is what is the costly part.</p>
<p>I have also considered another issue with Java applications that perpetuates the performance concern is that developers tend to use Swing improperly.  It is a single threaded GUI and without proper use of secondary threads to carry out background tasks it can cause the GUI to become sluggish.  And too many threads can chew up the processor and slow down the entire system.  Also, locking code blocks for thread protection also causes thrashing on the processor which damages performance.  When this sort of performance degredation happens often enough, I believe it shows a weakness somewhere in the platform perhaps in documentation, language features or profiling tools to get into the problem and resolve it.  If that is not the case maybe the Azureus team has not considered this to be an issue.  The right people looking at the problem should be able to fix it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DoesItMatter</title>
		<link>http://brennan.offwhite.net/blog/2006/10/26/azureus-is-slow-because-of-java/#comment-9957</link>
		<dc:creator>DoesItMatter</dc:creator>
		<pubDate>Sun, 29 Oct 2006 02:39:47 +0000</pubDate>
		<guid isPermaLink="false">http://brennan.offwhite.net/blog/2006/10/26/azureus-is-slow-because-of-java/#comment-9957</guid>
		<description>You know, I could see a network issue being the problem, if only J2EE servers were slow too, but that's clearly not the case as they dominate the server development/deployment arena by far. Java, slow, far from it. There are some things that it may not be as fast as native, but I've worked on several large scale Swing applications for internal company use that were plenty fast with large queries, fast UI responsiveness and more, and not only did we get the apps done faster because of Java's noticeably easier language than C/C++, but it ran on our internals mac/linux/windows/solaris desktops with no porting requirements. Trying to build a native app that runs both smoothly AND on different platforms is much more difficult with native, such as C/C++. Now, I am not taking you for a fool and suggesting you don't know this, but I am, once again, defending Java from someone who is speculating at why something runs slow with the only plausible reason being Java. It is just so easy to blame the underlying language on why it's slow, and not hardware, the OS it is running on, or perhaps the code itself. Azureus is kewl software, I use it. Never had a problem downloading or uploading many files at once. So by what your saying, then I should be saying that this Java app is as fast as or faster than native apps because I do not see any slugishness.

Sure would be nice if people would stop with the FUD regarding how slow Java is.</description>
		<content:encoded><![CDATA[<p>You know, I could see a network issue being the problem, if only J2EE servers were slow too, but that's clearly not the case as they dominate the server development/deployment arena by far. Java, slow, far from it. There are some things that it may not be as fast as native, but I've worked on several large scale Swing applications for internal company use that were plenty fast with large queries, fast UI responsiveness and more, and not only did we get the apps done faster because of Java's noticeably easier language than C/C++, but it ran on our internals mac/linux/windows/solaris desktops with no porting requirements. Trying to build a native app that runs both smoothly AND on different platforms is much more difficult with native, such as C/C++. Now, I am not taking you for a fool and suggesting you don't know this, but I am, once again, defending Java from someone who is speculating at why something runs slow with the only plausible reason being Java. It is just so easy to blame the underlying language on why it's slow, and not hardware, the OS it is running on, or perhaps the code itself. Azureus is kewl software, I use it. Never had a problem downloading or uploading many files at once. So by what your saying, then I should be saying that this Java app is as fast as or faster than native apps because I do not see any slugishness.</p>
<p>Sure would be nice if people would stop with the FUD regarding how slow Java is.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
