time << Time.new
“2 0.087”
I’m pretty sure from your other message that it’s using Ruby 1.9 with
UTF-8 encoded strings that kills performance. I get equivalent results
on OS X comparing 1.8.6 to 1.9.1 on common string operations like
String#.
It’s understandable that correct character-wise operations are much
harder for Ruby to implement efficiently on variable-byte-length
encodings like UTF-8. Unfortunately, though I was delighted to get
proper encoding support in 1.9, the performance hit on strings was a
killer on my string-intensive GUI app.
There are sometimes ways round this (eg I rewrote diff/lcs to use string
character enumerators rather than repeated expensive calls to
String#[]).
I expect the Ruby team are already aware of the problem, and I hope this
is a top priority for 1.9.2.
There are sometimes ways round this (eg I rewrote diff/lcs to use string
character enumerators rather than repeated expensive calls to
String#[]).
I expect the Ruby team are already aware of the problem, and I hope this
is a top priority for 1.9.2.
Unfortunately it appears to be a designed-in pessimization, though I
initially thought it was a mistake when I saw it. Guido van Rossum (the
Python creator) probably did too, as he asked Matz about it at the
40-minute mark here
At Fri, 27 Mar 2009 23:16:38 +0900,
Alex F. wrote in [ruby-talk:332264]:
I’m pretty sure from your other message that it’s using Ruby 1.9 with
UTF-8 encoded strings that kills performance. I get equivalent results
on OS X comparing 1.8.6 to 1.9.1 on common string operations like
String#.
Slow-read is caused by universal-newline.
Should’nt fread be reading binary file or should that be forced by ‘rb’
parameter at file.open()
I did fast test on Ubuntu x64 Linux. And the problem does not exist.
Althow it was Ruby version 1.9.0.
At Fri, 27 Mar 2009 23:16:38 +0900,
Alex F. wrote in [ruby-talk:332264]:
I’m pretty sure from your other message that it’s using Ruby 1.9 with
UTF-8 encoded strings that kills performance. I get equivalent results
on OS X comparing 1.8.6 to 1.9.1 on common string operations like
String#.
That is about 5x slower write and 500x read operation. Times are the
same if I do:
f = File.new(‘out.file’,‘r’)
c = f.read
f.close
P.S.
Where can I officaly report a Ruby bug?
That is about 5x slower write and 500x read operation. Times are the
same if I do:
f = File.new(‘out.file’,‘r’)
c = f.read
f.close
P.S.
Where can I officaly report a Ruby bug?