[MacRuby] #1077: Performance of String

MacRuby ruby-noreply at macosforge.org
Tue Jan 4 23:17:15 PST 2011


#1077: Performance of String
----------------------------------+-----------------------------------------
 Reporter:  yasuimao@…            |       Owner:  lsansonetti@…        
     Type:  defect                |      Status:  new                  
 Priority:  blocker               |   Milestone:  MacRuby 1.0          
Component:  MacRuby               |    Keywords:                       
----------------------------------+-----------------------------------------

Comment(by lsansonetti@…):

 After investigating with Watson, we realized that this test will behave
 slower than 0.8 on UTF-8 files containing non-ASCII characters.

 Indeed, if the file contains unicode (multibyte) characters, MacRuby
 cannot identify string lengths and boundaries in a constant time fashion,
 which results in performance loss.

 0.8 used to automatically convert these strings as UTF-16 internally for
 better performance, but in trunk, we removed the unicode datastore (for
 many other reasons, including multi-threading problems).

 We are discussing about adding an optimization in trunk, basically caching
 the boundaries. In the meantime, try forcing your file data object as
 UTF-16, using #encode, and see if you get the same performance numbers as
 0.8.

-- 
Ticket URL: <http://www.macruby.org/trac/ticket/1077#comment:6>
MacRuby <http://macruby.org/>



More information about the macruby-tickets mailing list