<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>/var/log/mind - Latest Comments in Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://var-log-mind.disqus.com/</link><description>Dhananjay Nene’s free (as in free speech) opinions on all things related to Software Engineering</description><language>en</language><lastBuildDate>Thu, 21 Aug 2008 18:49:02 -0000</lastBuildDate><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1725906</link><description>I like this 'deque' version since it adds a clarifying level of abstraction to the original problem formulation - that we are repeatedly selecting every nth item from a ring buffer.&lt;br&gt;&lt;br&gt;It could be cast in an object form with the same external interface as the original.  In some sense that makes it the same object implementation, since it shouldn't matter whether we implement the linked list pointers in Python or use the ones in the compiled deque code.&lt;br&gt;&lt;br&gt;from collections import deque&lt;br&gt;class Person(object):&lt;br&gt;..__slots__ = 'count'&lt;br&gt;..def __init__(self, count):&lt;br&gt;....self.count = count&lt;br&gt;..def shout(self, cnt, nth): return cnt # dummy method&lt;br&gt;class Chain(deque):&lt;br&gt;..def __init__(self, size):&lt;br&gt;....alist = [Person(i) for i in xrange(size)]&lt;br&gt;....deque.__init__(self, alist)&lt;br&gt;..def kill(self, nth):&lt;br&gt;....n1 = -(nth-1)&lt;br&gt;....while len(self):&lt;br&gt;......self.rotate(n1)&lt;br&gt;......last=self.popleft()&lt;br&gt;....return last</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">paulj</dc:creator><pubDate>Thu, 21 Aug 2008 18:49:02 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1605234</link><description>java version: 26922 milliseconds &lt;br&gt;my c++ version: 21422 milliseconds&lt;br&gt;&lt;br&gt;sorry, previously I wrote microseconds intead of milliseconds</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alberto Bignotti</dc:creator><pubDate>Mon, 18 Aug 2008 17:47:07 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1601000</link><description>the correct link is &lt;br&gt;&lt;br&gt;&lt;a href="http://www.bigno.it/speed/cppspeed.html" rel="nofollow"&gt;www.bigno.it/speed/cppspeed.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;sorry for the mistake</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alberto Bignotti</dc:creator><pubDate>Mon, 18 Aug 2008 13:14:59 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1600767</link><description>I modified c++ version adding 21 lines of code.&lt;br&gt;&lt;br&gt;On my machine, making a loop of 10000000 iterations: &lt;br&gt;java version: 26922 milliseconds &lt;br&gt;my c++ version: 21422 microseconds&lt;br&gt;&lt;br&gt;see details on whttp://www.bigno.it/speed/cppspeed.html</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alberto Bignotti</dc:creator><pubDate>Mon, 18 Aug 2008 13:05:45 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1210698</link><description>For many software problems, it helps a lot to know the +libraries+, not just the +language+.&lt;br&gt;&lt;br&gt;import time&lt;br&gt;from collections import deque&lt;br&gt;ITER = 100000&lt;br&gt;START_LEN = 40&lt;br&gt;KILL_EVERY = 3&lt;br&gt;start = time.time()&lt;br&gt;initial_chain = range(1, 1+START_LEN)&lt;br&gt;for i in xrange(ITER):&lt;br&gt;    chain = deque(initial_chain)&lt;br&gt;    while len(chain) &amp;gt; 1:&lt;br&gt;        chain.rotate(-(KILL_EVERY-1))&lt;br&gt;        chain.popleft()&lt;br&gt;end = time.time()&lt;br&gt;print 'Time per iteration = %s microseconds ' % ((end - start) / float(ITER) * 1e6)</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Francis Carr</dc:creator><pubDate>Wed, 13 Aug 2008 12:22:20 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1209724</link><description>As usual with this kind of benchmarks, part of the differences comes from non-idiomatic code. wrt/ the Python version, it's not pythonic code, it's Java code written in Python. I don't have time for this right now, but I'll try and propose a more pythonic solution.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">bruno</dc:creator><pubDate>Thu, 07 Aug 2008 06:18:18 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1209723</link><description>You claim to do an 'apples to apples' comparison has a couple of glitches.  The Java, C++, and Groovy versions do the main loop within a main function.  The Python version does not.  Putting the Python main loop in a main function, as is standard in Python as well, would probably make it run faster.  As near as I can tell, all versions except the Python version iterate with a counter variable.  You have the Python version needlessly create a list of 100000 elements that the other versions do not.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Terry J. Reedy</dc:creator><pubDate>Thu, 07 Aug 2008 02:13:22 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1209722</link><description>Would love to see Erlang in the list</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ivan</dc:creator><pubDate>Tue, 05 Aug 2008 08:10:46 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1209721</link><description>Howdy Expert, I fell blessed that I found your post while searching for anti virus 2f spyware remover free download. I agree with you on the subject o.us poetry. I was just thinking about this matter last Wednesday.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anti Virus 2f Spyware Remover </dc:creator><pubDate>Wed, 30 Jul 2008 04:08:22 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1209720</link><description>@mwb,&lt;br&gt;&lt;br&gt;I had precisely the same hypothesis that you are presenting. Even if you remove the deallocation calls from C++ completely, interestingly the java code is still much faster (but the gap between the two is a lot smaller)</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dnene</dc:creator><pubDate>Tue, 29 Jul 2008 02:09:49 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1209719</link><description>I think that the key thing being shown between Java and C++ is the difference in memory allocation.  In Java, allocating a new object is a simple increment of a pointer in a block of memory - very quick and efficient.  Where you pay for this is when it comes time to deallocate the memory, which requires the garbage collector to kick in.  My guess is that in the above benchmark, the GC never kicks in while things are being timed.&lt;br&gt;&lt;br&gt;The C++ benchmark, on the other hand goes through the more expensive C++ heap allocation, but also deallocates that memory precisely where the memory use is finished.&lt;br&gt;&lt;br&gt;This isn't an excuse for C++, just an explanation of what I believe to be the important reason for the difference between the two.  Still, the Java result is nice.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mwb</dc:creator><pubDate>Tue, 29 Jul 2008 02:03:35 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1209718</link><description>That is just so plain stupid wrong done benchmark</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lol</dc:creator><pubDate>Fri, 25 Jul 2008 05:27:50 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1209717</link><description>Never mind Pablo "troll" Sánchez comment. He is well known around here (Brasilia, Brazil) for his lack of both reasoning and cordiality, more often than not arguing randomly on subjects without any depth or solid sense of things, just plain rudeness (and, funny enough, he seems to firmly believe otherwise. A true manifestation...better yet, "instance" of the class Troll).&lt;br&gt;&lt;br&gt;I fear for the new comers around here that come to appreciate his misguided judgement of things.&lt;br&gt;&lt;br&gt;Anyway, in the sake of not wasting your comments space:&lt;br&gt;&lt;br&gt;@Riley How does Python deals with continuous instance creation inside loops? As others have noticed, this adds some dimension to the overall benchmark, with the memory management (or (de)allocation scheme) and associated optimizations playing important roles in the result. I think this might obfuscate what can be said about dispatch, lookup caches, inlining and so forth.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Covarde Anônimo</dc:creator><pubDate>Tue, 22 Jul 2008 19:54:43 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1209716</link><description>At least for Python and Jython this is mostly a lookup and dispatch benchmark.&lt;br&gt;&lt;br&gt;CPython is able to access instance variables more quickly if they're explicitly declared, as:&lt;br&gt;&lt;br&gt;class Person(object):&lt;br&gt;    __slots__ = ('count', 'prev', 'next')&lt;br&gt;&lt;br&gt;class Chain(object):&lt;br&gt;    __slots__ = ('first',)&lt;br&gt;&lt;br&gt;That sped things up from 159 to 135 ms/iteration. You can shave a bit more time off (=128 ms) by using pointer comparison, i.e., "is not" and "is" instead of "!=" and "==".  Running under Psyco with these improvements, it finishes in 54 ms.&lt;br&gt;&lt;br&gt;Jython needs a different tweak at the moment. By switching from new-style to old-style classes:&lt;br&gt;&lt;br&gt;class Person:&lt;br&gt;&lt;br&gt;class Chain:&lt;br&gt;&lt;br&gt;the runtime went from 476 to 187 ms/iteration.&lt;br&gt;&lt;br&gt;I'm a Jython developer and needless to say the slowness of new-style classes is on our short list for performance improvements.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nicholas Riley</dc:creator><pubDate>Mon, 21 Jul 2008 03:40:55 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1209715</link><description>Good tests. :)&lt;br&gt;&lt;br&gt;Your php code does not look good but that's fine.&lt;br&gt;&lt;br&gt;I just want to corrent Pablo Sánchez saying that PHP code is not PHP5 code. You didn't have __construct() and __destruct() in PHP4, they were introduced in PHP5.&lt;br&gt;&lt;br&gt;Oh, and PHP CLI version is slower AFAIK. Apache module is faster (but that way you'd be testing apache also, I see the problem).</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Thiago Pojda</dc:creator><pubDate>Thu, 17 Jul 2008 14:31:52 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1209714</link><description>You should obviously not talk about languages you don't have a clue of. Your PHP code sux a lot. If you wanted to make it serious, than you should have had a groups of experts of each language to decide de best way of doing things.&lt;br&gt;&lt;br&gt;Also, PHP has an extra line between 8 and 9, so it would be only 84 lines. Also, you don't need to close the script with ? if the file has only PHP code, which would lead us to 83 lines. More to say: you don't nees {} for 1 line ifs, which would reduce 2 more lines, leaving us with 81 lines.&lt;br&gt;&lt;br&gt;And I could keep fixing your code for days, but I gotta better things to do than see your PHP 4 code (yes, you did not used PHP 5 code! meaning the PHP engine also slows down to try toi execute the code as PHP 4!).</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Pablo Santiago Sánchez</dc:creator><pubDate>Thu, 17 Jul 2008 14:11:20 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1209713</link><description>@sri, &lt;br&gt;&lt;br&gt;I would offer a rather different view than what you stated.&lt;br&gt;&lt;br&gt;If all compilers were able to optimise all loops equally I would agree with you. However the fact of the matter is that they dont. Hence such a comparison is not entirely unwarranted.&lt;br&gt;&lt;br&gt;If users were attempting to use languages for the reasons they were invented and not for others I would go along with you. However Java was invented for set top boxes. But it comes up time and again as an option in networking, games, transactional processing, databases etc. etc. I think it is fair to compare them.&lt;br&gt;&lt;br&gt;In both c++ and java the user process has to handle the memory allocation and deallocation. The difference is that in Java *sometimes* the automatic garbage collector because it works on deallocation in a bulk mode, has an opportunity to optimise memory management far beyond what any finely crafted developer specified memory allocation can do. Hence *sometimes* java memory management can be faster than (I don't know if it can beat the shit out of) hand crafted C++ code. &lt;br&gt;&lt;br&gt;C will allow you fine control on storage sizes down to the byte level. There are scenarios where this is really useful (eg. embedded) and there are scenarios where this may not be. It is precisely because of this, an architect requires to achieve the appropriate tradeoff between control / speed / ram (C++) vs. high developer producitivity and agility (Python / Ruby) with Java somewhere inbetween.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dnene</dc:creator><pubDate>Wed, 16 Jul 2008 16:05:29 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1209712</link><description>@Peter Lupo, @Pedro - I updated the line counts&lt;br&gt;&lt;br&gt;@and - I don't know COBOL (actually the last time I coded with it was in 1990).&lt;br&gt;&lt;br&gt;@Mauricio - I believe more and more games are starting to be written using Java. Games often require not just a fast gaming engine (which I believe Java has started contributing to) but also highly optimised Graphics APIs (last I checked there was no DirectX / OpenGL using Java directly. :) ). However I am sure C will in all likelihood continue to have an advantage over Java in games.&lt;br&gt;&lt;br&gt;@Vitor - I have already remarked above (in the comments) - the number of iterations do not make any significant difference to the results (though the fact that these are different is accidental and not intentional)</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dnene</dc:creator><pubDate>Wed, 16 Jul 2008 15:55:29 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1209711</link><description>Why you don´t put COBOL. COBOL is TOO Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">and</dc:creator><pubDate>Wed, 16 Jul 2008 15:37:28 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1209710</link><description>One vote to #  Peter Lupo's comment</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">pedro</dc:creator><pubDate>Wed, 16 Jul 2008 10:30:25 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1209709</link><description>Please, fix your C++ code: &lt;br&gt;&lt;br&gt;Instead of &lt;br&gt;&lt;br&gt;int ITER = 1000000;  &lt;br&gt;&lt;br&gt;use&lt;br&gt;&lt;br&gt;int ITER = 100000;&lt;br&gt;&lt;br&gt;as other codes.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vitor Pamplona</dc:creator><pubDate>Tue, 15 Jul 2008 22:13:40 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1209708</link><description>"Cannot understand why most very intensive apps (games is a good example) are not written in Java"&lt;br&gt;&lt;br&gt;One reason is because games have LOTS of math and Java is still very slow at intensive math calculations in comparison to C++. &lt;br&gt;&lt;br&gt;This benchmark isn't worth much because it doesn't do anything useful.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">titanandrews</dc:creator><pubDate>Tue, 15 Jul 2008 15:26:41 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1209707</link><description>Very impressive test. Java outperforms C++ in performance in a VERY PARTICULAR way.  Cannot understand why most very intensive apps (games is a good example) are not written in Java.   Anyway, java still rocks.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Mauricio Reale</dc:creator><pubDate>Tue, 15 Jul 2008 14:53:36 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1209706</link><description>Wrong line count! :-)&lt;br&gt;There is no reason why you should write java methods like&lt;br&gt;&lt;br&gt;public int getCount()&lt;br&gt;{&lt;br&gt;	return this.count;&lt;br&gt;}&lt;br&gt;&lt;br&gt;And C methods like&lt;br&gt;&lt;br&gt;int count() { return _count; }&lt;br&gt;&lt;br&gt;This gives you a wrong line count.&lt;br&gt;&lt;br&gt;As you say, you should compare apples to apples, so you should use the same rule for code formatting on all the languages.&lt;br&gt;&lt;br&gt;BTW, Java Code Conventions advise us to write our Java methods with { at the end of the line, like:&lt;br&gt;public int getCount() {&lt;br&gt;and not in the beginning of the next line like you did.&lt;br&gt;&lt;br&gt;Please, reformat the codes and recount the lines.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Peter Lupo</dc:creator><pubDate>Tue, 15 Jul 2008 13:57:34 -0000</pubDate></item><item><title>Re: Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy</title><link>http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/#comment-1209705</link><description>hey dhananjay,&lt;br&gt;This is sri. Thanks for signing up at enewss.&lt;br&gt;Regarding your performance comparison between different languages...&lt;br&gt;Most of the compilers do a very good job at optimizing the loops and hence not good for performance metrics. I would prefer to solve an algorithm for searching for the sake of comparing different languages.&lt;br&gt;Again, to be frank, we are comparing apples to oranges because the languages you chose are invesnted for specific purpose and hence shouldn't be compared..&lt;br&gt;&lt;br&gt;Your conclusion that performance of c++ language worsens with freeing up of memory is correct because of reasons you already know. In case of java, jvm handles all of the memory related services freeing up process to do its job, whereas in c++, the user process has to take care of it.&lt;br&gt;&lt;br&gt;However, there is one subtle difference between c++ and java, if programmed correctly, c++ can beat the shit out of java when it comes to memory allocation.&lt;br&gt;in c++ objects can be created on stack, whereas in java everything is on the heap. So, in c++, objects can be created  and destroyed faster if you make use of stack properly without the need of new() routine/heap_memory.&lt;br&gt;&lt;br&gt;Again, if programmed perfectly to the finest bit and byte level, c++ can perform very well in real time applications compared to java, as java allocates storage for program variables and structures with highest common denominator among all the platforms available. In c++, you have the control on storage size.&lt;br&gt;&lt;br&gt;Performance measurement is an art, industry always has fine tuned their applications only to come up with a biased report to almost always give high marks to their products/applications.&lt;br&gt;&lt;br&gt;Neverthless, your blog  made me recollect things which i almost forbot about.&lt;br&gt;Thanks&lt;br&gt;Sri</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">sri</dc:creator><pubDate>Tue, 15 Jul 2008 01:05:04 -0000</pubDate></item></channel></rss>