# Ruby 1.8.1 REXML performance

**URL:** <https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940>\
**Category:** ruby-talk\
**Created:** [31 January 2004 16:02 UTC](https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940 "2004-01-31T16:02:14Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Steven\_Jenkins](https://avatars.discourse-cdn.com/v4/letter/s/ba9def/32.png) [@Steven\_Jenkins](https://rubytalk.org/u/Steven_Jenkins)\
**Post date:** [31 January 2004 16:02 UTC](https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940/1 "2004-01-31T16:02:14Z")

</div>

I have a script that uses REXML to stream parse an XML file and load a  
MySQL database from it. The file is about 65000 lines, 2.2 MB. With Ruby  
1.8.0, it completes in about 25 seconds. I just installed Ruby 1.8.1,  
and the performance is at least a factor of 20 worse.

This is on a 1 GHz P3 running Gentoo Linux. I don’t have head-to-head  
comparison numbers, but I’m observing the same effect on a 3.2 GHz P4  
running RedHat 9. The script runs for 16 minutes when it should have  
completed in a few seconds.

I’ve commented out the database calls, so I’m just measuring the  
Ruby/REXML performance.

Any ideas?

---

<div class="post-metadata">

**Author:** ![Steven\_Jenkins](https://avatars.discourse-cdn.com/v4/letter/s/ba9def/32.png) [@Steven\_Jenkins](https://rubytalk.org/u/Steven_Jenkins)\
**Post date:** [31 January 2004 18:03 UTC](https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940/2 "2004-01-31T18:03:25Z")

</div>

Here’s a little more data. I’ve stripped the application down to a  
bare-bones stream parser:

> **···**
>
> * * *
> 
> #!/usr/bin/env ruby
> 
> require "rexml/document"  
> require “rexml/streamlistener”
> 
> class Handler  
> include REXML::StreamListener
> 
> ```
> def initialize
> end
> 
> def tag_start(name, attrs)
> end
> 
> def tag_end(name)
> end
> 
> def text(t)
> end
> 
> def cdata(d)
> end
> 
> ```
> 
> end
> 
> ## REXML::Document.parse\_stream($stdin, Handler.new)
> 
> I’m running the tests on two different machines because it’s a pain to  
> switch minor versions on the same machine. But I have run tests on the  
> same machine to verify the results.
> 
> To parse a 65,000 line XML file:
> 
> machine1 machine2  
> 1 GHz 3.2 GHz  
> Ruby 1.8.0 Ruby 1.8.1  
> 17 seconds 515 seconds
> 
> Steve

---

<div class="post-metadata">

**Author:** ![Steven\_Jenkins](https://avatars.discourse-cdn.com/v4/letter/s/ba9def/32.png) [@Steven\_Jenkins](https://rubytalk.org/u/Steven_Jenkins)\
**Post date:** [31 January 2004 22:05 UTC](https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940/3 "2004-01-31T22:05:07Z")

</div>

Quick update–I’ll post numbers later. It appears that the REXML stream  
parser in Ruby 1.8.1 is worse than O(n) in the number of input lines (or  
tags). Ruby 1.8.0 appears to be pretty close to O(n) (as it should).

I hope soon I won’t be the only person in this thread :-).

Steve

---

<div class="post-metadata">

**Author:** ![Steven\_Jenkins](https://avatars.discourse-cdn.com/v4/letter/s/ba9def/32.png) [@Steven\_Jenkins](https://rubytalk.org/u/Steven_Jenkins)\
**Post date:** [1 February 2004 20:14 UTC](https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940/4 "2004-02-01T20:14:08Z")

</div>

For the record, here’s a workaround:

[http://butter.homeunix.net/~kapheine/source.rb](http://butter.homeunix.net/~kapheine/source.rb)

Here’s the bug report:

[http://www.ruby-lang.org/cgi-bin/ruby-bugs/incoming?id=1271;expression=rexml;page=1;user=guest](http://www.ruby-lang.org/cgi-bin/ruby-bugs/incoming?id=1271;expression=rexml;page=1;user=guest)

Thanks to all who helped on IRC.

Steve

---

<div class="post-metadata">

**Author:** ![Daniel\_Berger3](https://avatars.discourse-cdn.com/v4/letter/d/c68b51/32.png) [@Daniel\_Berger3](https://rubytalk.org/u/Daniel_Berger3)\
**Post date:** [1 February 2004 03:39 UTC](https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940/5 "2004-02-01T03:39:54Z")

</div>

Steven Jenkins [steven.jenkins@ieee.org](mailto:steven.jenkins@ieee.org) wrote in message news:[401C268F.80805@ieee.org](mailto:401C268F.80805@ieee.org)…

> Quick update–I’ll post numbers later. It appears that the REXML stream  
> parser in Ruby 1.8.1 is worse than O(n) in the number of input lines (or  
> tags). Ruby 1.8.0 appears to be pretty close to O(n) (as it should).
> 
> I hope soon I won’t be the only person in this thread :-).
> 
> Steve

Steve,

One thing you can do is run your code through the profiler (ruby -r  
profile yourcode.rb) and show us the results. This could help us  
identify a potential bottleneck in REXML and/or Ruby itself.

Regards,

Dan

---

<div class="post-metadata">

**Author:** ![SER1](https://avatars.discourse-cdn.com/v4/letter/s/3e96dc/32.png) [@SER1](https://rubytalk.org/u/SER1)\
**Post date:** [9 February 2004 20:59 UTC](https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940/6 "2004-02-09T20:59:56Z")

</div>

Steven Jenkins [steven.jenkins@ieee.org](mailto:steven.jenkins@ieee.org) wrote in message news:[401D5E09.9030401@ieee.org](mailto:401D5E09.9030401@ieee.org)…

> For the record, here’s a workaround:
> 
> [http://butter.homeunix.net/~kapheine/source.rb](http://butter.homeunix.net/~kapheine/source.rb)
> 
> Here’s the bug report:
> 
> [http://www.ruby-lang.org/cgi-bin/ruby-bugs/incoming?id=1271;expression=rexml;page=1;user=guest](http://www.ruby-lang.org/cgi-bin/ruby-bugs/incoming?id=1271;expression=rexml;page=1;user=guest)

Steve,

Sorry for the delay. I’ve been really distracted for the past few  
months with this and that. I’ll check your workaround, and your bug  
report. I’ve got a ton of work to do with REXML; one reason I’ve been  
taking so long to fix things is that the performance issue with 1.8.x  
is really bothering me; the memory usage of REXML is much worse under  
1.8 than it is under 1.6, and I’ve been blocked trying to figure that  
out.

Anyway, sorry – to everybody – for being such a laggard. Things  
should be better now.

— SER

---

<div class="post-metadata">

**Author:** ![Steven\_Jenkins](https://avatars.discourse-cdn.com/v4/letter/s/ba9def/32.png) [@Steven\_Jenkins](https://rubytalk.org/u/Steven_Jenkins)\
**Post date:** [1 February 2004 06:15 UTC](https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940/7 "2004-02-01T06:15:26Z")

</div>

Daniel Berger wrote:

> One thing you can do is run your code through the profiler (ruby -r  
> profile yourcode.rb) and show us the results.

I’ve been running lots of tests. Unfortunately, the profiler adds a  
large O(n) component to the runtime, so the nonlinear behavior doesn’t  
emerge until larger n. (n is the number of tags in the input XML file.)

I have a lot of data now and I’ll have to organize it a little. The  
method call counts look fine–they are all linear in n (with a small  
constant offset.) One thing that does jump out, however, is that as n  
goes from 1000 to 50000, the time per call for String#strip goes  
increases by factor of about 10. For n = 1000, String#strip accounted  
for about 6% of the total runtime. For n = 50000, it’s about 30%.  
(Without the profiler, the percentages would be even higher.) That must  
mean String#strip is being passed longer arguments for larger n.

String#strip is called exactly the same number of times as:

REXML::Parsers::BaseParser#pull  
REXML::Parsers::BaseParser#has\_next?  
REXML::Parsers::BaseParser#empty?  
REXML::IOSource#empty?  
REXML::Source#empty?

IOSource#empty? and Source#empty both call String#strip directly, so I  
suspect that’s where the problem is.

Steve

---

<div class="post-metadata">

**Author:** ![Steven\_Jenkins](https://avatars.discourse-cdn.com/v4/letter/s/ba9def/32.png) [@Steven\_Jenkins](https://rubytalk.org/u/Steven_Jenkins)\
**Post date:** [12 February 2004 14:34 UTC](https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940/8 "2004-02-12T14:34:46Z")

</div>

Sean Russell wrote:

> Sorry for the delay. I’ve been really distracted for the past few  
> months with this and that.

I know how that goes. Fortunately, Zachary Landau already had a  
workaround; I just had to discover it.

Good luck with the 1.8 work. I use REXML in a couple of simple but  
important applications. I’m happy with it overall. Performance, as you  
note, could be better, but it’s not a show-stopper.

Steve

---

<div class="post-metadata">

**Author:** ![Steven\_Jenkins](https://avatars.discourse-cdn.com/v4/letter/s/ba9def/32.png) [@Steven\_Jenkins](https://rubytalk.org/u/Steven_Jenkins)\
**Post date:** [1 February 2004 17:17 UTC](https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940/9 "2004-02-01T17:17:27Z")

</div>

I’ve repeated all the tests with Ruby 1.8.0 and it sure looks like  
String#strip is the problem.

To summarize, I have a bare REXML stream parser that reads its input  
file and does nothing. I’m handing it an input file that looks like this

\<?xml version="1.0" ?\> 0 1 ...

I’m varying the number of elements in the file from 100 to  
50000 and calling that n. In Ruby 1.8.0, the runtime is roughly  
proportional to n, as it should be. In 1.8.1, the total runtime is  
greater (which is bad but not pathological) and worse than linear in n  
(which is pathological).

Here’s the profile data for strip over all values of n:

```
            time/call % total runtime
           min max min max

```

Ruby 1.8.0 .01 .02 .82 2.48  
Ruby 1.8.1 .10 1.21 5.08 29.04

In both cases, the number of calls is proportional to n, although strip  
is called 2.5 times more often in 1.8.0 than 1.8.1. In 1.8.1 (only),  
there is a strong increasing trend in the time per call as n increases.

I don’t suspect the problem is in strip itself. I suspect the problem is  
that REXML creates a string that grows as more input is read and hands  
it repeatedly to strip. I looked briefly at the REXML code and didn’t  
see anything obvious. (Other than the fact that calling strip on a  
buffer just to see whether it has any tokens in it is inefficient. That  
just makes it slow, however, not nonlinear–unless the buffer is growing.)

I hope this is enough for someone to diagnose and fix the problem. I’ll  
send the data to anyone who wants it.

Steve

---

<div class="post-metadata">

**Author:** ![SER1](https://avatars.discourse-cdn.com/v4/letter/s/3e96dc/32.png) [@SER1](https://rubytalk.org/u/SER1)\
**Post date:** [14 February 2004 03:29 UTC](https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940/10 "2004-02-14T03:29:57Z")

</div>

Steven Jenkins [steven.jenkins@ieee.org](mailto:steven.jenkins@ieee.org) wrote in message news:[402B8EFE.6000202@ieee.org](mailto:402B8EFE.6000202@ieee.org)…

> Good luck with the 1.8 work. I use REXML in a couple of simple but  
> important applications. I’m happy with it overall. Performance, as you  
> note, could be better, but it’s not a show-stopper.

Yeah, well… I think REXML is at the point where I’m squeezing  
optimizations out of it. Many of the optimizations I’ve tried have  
made things worse, and I end up backing them out. I’m not out of  
ideas yet, but I doubt that we’ll ever see an order of magnitude  
improvement, until I write an optional back-end that makes use of a  
native parsing library.

One thing you can do, though, is drop out of the advanced API and use  
the light parser. The light parser API is pretty limited, at the  
moment; it’ll be a lot more useful when I get it hooked into XPath,  
but it should nearly double the speed of parsing. It does this by  
eschewing the heavy, traditional, REXML tree objects. The price is  
that you don’t get all of the neat helper functions; at that point,  
you’re dealing with pretty raw data. The API isn’t well documented  
yet, but it works.

— SER

---

<div class="post-metadata">

**Author:** ![Lothar\_Scholz2](https://avatars.discourse-cdn.com/v4/letter/l/f14d63/32.png) [@Lothar\_Scholz2](https://rubytalk.org/u/Lothar_Scholz2)\
**Post date:** [1 February 2004 19:01 UTC](https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940/11 "2004-02-01T19:01:09Z")

</div>

Hello Steven,

Sunday, February 1, 2004, 6:17:27 PM, you wrote:

> I've repeated all the tests with Ruby 1.8.0 and it sure looks like  
> String#strip is the problem.

> To summarize, I have a bare REXML stream parser that reads its input  
> file and does nothing. I'm handing it an input file that looks like this

> \<?xml version="1.0" ?\>  
> \<multistatus\>  
> \<response\>  
> \<dsref\>0\</dsref\>  
> \</response\>  
> \<response\>  
> \<dsref\>1\</dsref\>  
> \</response\>  
> ...  
> \</multistatus\>

> I'm varying the number of \<response\> elements in the file from 100 to  
> 50000 and calling that n. In Ruby 1.8.0, the runtime is roughly  
> proportional to n, as it should be. In 1.8.1, the total runtime is  
> greater (which is bad but not pathological) and worse than linear in n  
> (which is pathological).

> Here's the profile data for strip over all values of n:

> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time/call % total runtime  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;min max min max

> Ruby 1.8.0 .01 .02 .82 2.48  
> Ruby 1.8.1 .10 1.21 5.08 29.04

> In both cases, the number of calls is proportional to n, although strip  
> is called 2.5 times more often in 1.8.0 than 1.8.1. In 1.8.1 (only),  
> there is a strong increasing trend in the time per call as n increases.

> I don't suspect the problem is in strip itself. I suspect the problem is  
> that REXML creates a string that grows as more input is read and hands  
> it repeatedly to strip. I looked briefly at the REXML code and didn't  
> see anything obvious. (Other than the fact that calling strip on a  
> buffer just to see whether it has any tokens in it is inefficient. That  
> just makes it slow, however, not nonlinear--unless the buffer is growing.)

> I hope this is enough for someone to diagnose and fix the problem. I'll  
> send the data to anyone who wants it.

You are the only one talking with you in this thread. Do you really  
think that someone else will do your job ? Do it for free ? Welcome to the  
world of OpenSource Software (call it non active supported software),  
write a personal email to the REXML author hope he respond, otherwise  
fix it and hope he adds it to the code, otherwise publish your source  
patch and hope more people use it then the original branch, otherwise repeat  
the same thing every few month as long as you need this library.

Yes, no doubt, i'm not an open source fan.

> **···**
>
> --  
> Best regards,  
> Lothar [mailto:mailinglists@scriptolutions](mailto:mailinglists@scriptolutions).com

---

<div class="post-metadata">

**Author:** ![Martin\_S\_Weber](https://avatars.discourse-cdn.com/v4/letter/m/9d8465/32.png) [@Martin\_S\_Weber](https://rubytalk.org/u/Martin_S_Weber)\
**Post date:** [1 February 2004 19:14 UTC](https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940/12 "2004-02-01T19:14:55Z")

</div>

> (…)  
> You are the only one talking with you in this thread. Do you really  
> think that someone else will do your job ?

His job ? it’s part of the base system after all.

> Do it for free ?

So we should ask for money if you come here and ask for help ?

> (… brainless babble stripped …)
> 
> Yes, no doubt, i’m not an open source fan.

Go use Java on solaris then. ([http://www.archub.org/javamemo.txt](http://www.archub.org/javamemo.txt)).  
And pay Matz for ruby.

Best regards,

-Martin

> **···**
>
> On Mon, Feb 02, 2004 at 04:01:09AM +0900, Lothar Scholz wrote:

---

<div class="post-metadata">

**Author:** ![Paul\_Vudmaska](https://avatars.discourse-cdn.com/v4/letter/p/c2a13f/32.png) [@Paul\_Vudmaska](https://rubytalk.org/u/Paul_Vudmaska)\
**Post date:** [1 February 2004 19:22 UTC](https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940/13 "2004-02-01T19:22:26Z")

</div>

Lothar Scholz wrote:

> Hello Steven,
> 
> Sunday, February 1, 2004, 6:17:27 PM, you wrote:
> 
> > I’ve repeated all the tests with Ruby 1.8.0 and it sure looks like  
> > String#strip is the problem.
> 
> > To summarize, I have a bare REXML stream parser that reads its input  
> > file and does nothing. I’m handing it an input file that looks like this
> 
> > \<?xml version="1.0" ?\> 0 1 ...
> 
> > I’m varying the number of elements in the file from 100 to  
> > 50000 and calling that n. In Ruby 1.8.0, the runtime is roughly  
> > proportional to n, as it should be. In 1.8.1, the total runtime is  
> > greater (which is bad but not pathological) and worse than linear in n  
> > (which is pathological).
> 
> > Here’s the profile data for strip over all values of n:
> 
> > ```
> > time/call % total runtime
> > min max min max
> > 
> > ```
> 
> > Ruby 1.8.0 .01 .02 .82 2.48  
> > Ruby 1.8.1 .10 1.21 5.08 29.04
> 
> > In both cases, the number of calls is proportional to n, although strip  
> > is called 2.5 times more often in 1.8.0 than 1.8.1. In 1.8.1 (only),  
> > there is a strong increasing trend in the time per call as n increases.
> 
> > I don’t suspect the problem is in strip itself. I suspect the problem is  
> > that REXML creates a string that grows as more input is read and hands  
> > it repeatedly to strip. I looked briefly at the REXML code and didn’t  
> > see anything obvious. (Other than the fact that calling strip on a  
> > buffer just to see whether it has any tokens in it is inefficient. That  
> > just makes it slow, however, not nonlinear–unless the buffer is growing.)
> 
> > I hope this is enough for someone to diagnose and fix the problem. I’ll  
> > send the data to anyone who wants it.
> 
> You are the only one talking with you in this thread. Do you really  
> think that someone else will do your job ? Do it for free ? Welcome to the  
> world of OpenSource Software (call it non active supported software),  
> write a personal email to the REXML author hope he respond, otherwise  
> fix it and hope he adds it to the code, otherwise publish your source  
> patch and hope more people use it then the original branch, otherwise repeat  
> the same thing every few month as long as you need this library.
> 
> Yes, no doubt, i’m not an open source fan.

Tho i think this thread would be more relevant on the rexml ml, I have  
been reading the thread and it does interest me (I’ve not been  
responding because i prob could not help). I think you’ve been dilegent  
and helpful in pointing out either a bug or performance hit. I did not  
think you were asking for anything for free or whatever - besides, to  
me, that’s what these ml’s are for, in any case. Good luck in  
finding/helping find the culprit for the performance problem.

---

<div class="post-metadata">

**Author:** ![Steven\_Jenkins](https://avatars.discourse-cdn.com/v4/letter/s/ba9def/32.png) [@Steven\_Jenkins](https://rubytalk.org/u/Steven_Jenkins)\
**Post date:** [1 February 2004 19:29 UTC](https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940/14 "2004-02-01T19:29:30Z")

</div>

Lothar Scholz wrote:

> You are the only one talking with you in this thread.

Other people are reading it. You read it. It gets archived.

> Do you really think that someone else will do your job ? Do it for free ?

It’s not my job. I observed something interesting and I reported it.

> Welcome to the  
> world of OpenSource Software (call it non active supported software),  
> write a personal email to the REXML author hope he respond, otherwise  
> fix it and hope he adds it to the code, otherwise publish your source  
> patch and hope more people use it then the original branch, otherwise repeat  
> the same thing every few month as long as you need this library.

Thanks for the advice. I reported this problem Saturday morning US  
Pacific time. It is now Sunday morning. In the intervening day others  
and I have (1) confirmed my observations, (2) carried on an off-list  
discussion of the problem, and (3) applied a patch developed by kapheine  
that completely solves the problem.

And we all did it for free. It was even fun.

> Yes, no doubt, i’m not an open source fan.

So what?

Steve

---

<div class="post-metadata">

**Author:** ![Rich1](https://avatars.discourse-cdn.com/v4/letter/r/e56c9b/32.png) [@Rich1](https://rubytalk.org/u/Rich1)\
**Post date:** [1 February 2004 22:12 UTC](https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940/15 "2004-02-01T22:12:26Z")

</div>

Open source == Learn it yourself by trying and get it right if you can,  
with as much help as others are willing to give you in your pursuit.

That is one reason why I’ve loved Ruby so much. The community _is_ a  
community, not just a collection of individuals with similar traits.

I don’t think I have a clue about programming yet, but there are those who  
are willing to help me get a clue.

I will forever be grateful to those who help - no matter how large or small  
their help might end up being.

> You are the only one talking with you in this thread. Do you really  
> think that someone else will do your job ? Do it for free ? Welcome to the  
> world of OpenSource Software (call it non active supported software),  
> write a personal email to the REXML author hope he respond, otherwise  
> fix it and hope he adds it to the code, otherwise publish your source  
> patch and hope more people use it then the original branch, otherwise  
> repeat  
> the same thing every few month as long as you need this library.
> 
> Yes, no doubt, i’m not an open source fan.

No doubt I _am_ an open source and Ruby fan.

-Rich

---

<div class="post-metadata">

**Author:** ![Michael\_Vondung1](https://avatars.discourse-cdn.com/v4/letter/m/ecd19e/32.png) [@Michael\_Vondung1](https://rubytalk.org/u/Michael_Vondung1)\
**Post date:** [3 February 2004 15:35 UTC](https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940/16 "2004-02-03T15:35:02Z")

</div>

> You are the only one talking with you in this thread. Do you really  
> think that someone else will do your job ? Do it for free ?

Hmm, that’s the third or fifth message I am reading from you today,  
and they all were negative and/or rude. You don’t seem to like Ruby or  
its community much. Someone asked you, in another thread, if you are a  
troll. I believe the question was on target.

> Yes, no doubt, i’m not an open source fan.

Quite apparently not one of decent manners, either.

M.

> **···**
>
> On Mon, 2 Feb 2004 04:01:09 +0900, Lothar Scholz [mailinglists@scriptolutions.com](mailto:mailinglists@scriptolutions.com) wrote:

---

<div class="post-metadata">

**Author:** ![Gavin\_Sinclair](https://avatars.discourse-cdn.com/v4/letter/g/db5fbb/32.png) [@Gavin\_Sinclair](https://rubytalk.org/u/Gavin_Sinclair)\
**Post date:** [1 February 2004 21:44 UTC](https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940/17 "2004-02-01T21:44:09Z")

</div>

Well done. I was just about to send a private note thanking you for  
your diligence and good investigation and reporting. Lothar’s poor  
public comment, however, has compelled me to make my comment public.

So thank you 🙂

Cheers,  
Gavin

> **···**
>
> On Monday, February 2, 2004, 6:29:30 AM, Steven wrote:
> 
> > > Welcome to the  
> > > world of OpenSource Software (call it non active supported software),  
> > > write a personal email to the REXML author hope he respond, otherwise  
> > > fix it and hope he adds it to the code, otherwise publish your source  
> > > patch and hope more people use it then the original branch, otherwise repeat  
> > > the same thing every few month as long as you need this library.
> 
> > Thanks for the advice. I reported this problem Saturday morning US  
> > Pacific time. It is now Sunday morning. In the intervening day others  
> > and I have (1) confirmed my observations, (2) carried on an off-list  
> > discussion of the problem, and (3) applied a patch developed by kapheine  
> > that completely solves the problem.

---

<div class="post-metadata">

**Author:** ![Zach\_Dennis1](https://avatars.discourse-cdn.com/v4/letter/z/ea5d25/32.png) [@Zach\_Dennis1](https://rubytalk.org/u/Zach_Dennis1)\
**Post date:** [1 February 2004 22:22 UTC](https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940/18 "2004-02-01T22:22:58Z")

</div>

Open Source is wonderful. It allows folks to focus on the best possible  
service they can offer and not on “mine mine mine” concept that children at  
the age of 2 get so well. Perhaps that is my new fav analogy of Open Source  
vs. Closed Source developers. Open Sourcer’s are compared to children older  
then that of 2 who have learned to share, while Closed Source developers can  
be compared to children at the age of 2. I wonder what’ll happen when  
developers reach adolesence. =)

Zach

> **···**
>
> * * *
> 
> Outgoing mail is certified Virus Free.  
> Checked by AVG anti-virus system ([http://www.grisoft.com](http://www.grisoft.com)).  
> Version: 6.0.576 / Virus Database: 365 - Release Date: 1/30/2004

---

<div class="post-metadata">

**Author:** ![Tim\_Hunter](https://avatars.discourse-cdn.com/v4/letter/t/7feea3/32.png) [@Tim\_Hunter](https://rubytalk.org/u/Tim_Hunter)\
**Post date:** [1 February 2004 22:24 UTC](https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940/19 "2004-02-01T22:24:53Z")

</div>

Here’s something I never thought I’d get from working on an O/S project:  
I’m in the U.S., but I’ve communicated via email with Ruby users in Spain,  
Germany, England, Austrailia, and Japan. We’re not just a community, but a  
_global_ community.

> **···**
>
> On Mon, 02 Feb 2004 07:12:26 +0900, Rich wrote:
> 
> > That is one reason why I’ve loved Ruby so much. The community _is_ a  
> > community, not just a collection of individuals with similar traits.

---

<div class="post-metadata">

**Author:** ![Sam\_Roberts1](https://avatars.discourse-cdn.com/v4/letter/s/ed8c4c/32.png) [@Sam\_Roberts1](https://rubytalk.org/u/Sam_Roberts1)\
**Post date:** [3 February 2004 16:28 UTC](https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940/20 "2004-02-03T16:28:36Z")

</div>

Quoteing [mvondung@gmx.net](mailto:mvondung@gmx.net), on Wed, Feb 04, 2004 at 12:35:02AM +0900:

> > You are the only one talking with you in this thread. Do you really  
> > think that someone else will do your job ? Do it for free ?
> 
> Hmm, that’s the third or fifth message I am reading from you today,  
> and they all were negative and/or rude. You don’t seem to like Ruby or  
> its community much. Someone asked you, in another thread, if you are a  
> troll. I believe the question was on target.
> 
> > Yes, no doubt, i’m not an open source fan.

Which is particularly weird, given that Lothar is the principle of a  
company which claims to be developing IDEs for open source scripting  
languages (betas expected at end of the year…)!

Like Ruby:

[http://www.ruby-ide.com/arachno\_ruby.php](http://www.ruby-ide.com/arachno_ruby.php)

He’s not much of a salesman for himself, I’d say!

Cheers,  
Sam

> **···**
>
> > On Mon, 2 Feb 2004 04:01:09 +0900, Lothar Scholz [mailinglists@scriptolutions.com](mailto:mailinglists@scriptolutions.com) wrote:

[Next page](https://rubytalk.org/t/ruby-1-8-1-rexml-performance/9940.md?page=2)
