#1075: rdoc is way too slow as of r5059 -----------------------------------+---------------------------------------- Reporter: lsansonetti@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: -----------------------------------+---------------------------------------- Comment(by vincent.isambart@…): Before the new string, the characters were often stored internally in UTF-16, so finding what was at a specific index was very fast. In the new strings, the characters are always stored in their original encoding so getting a character at a specific index is much harder and slower. I won't go back to the previous version of string because they were too dangerous to use in a multithreaded environment. However the changes commited in r5077 should make String much faster. What I did was write a version of str_update_flags and str_get_character_boundaries specific for UTF-8 and changed a few checks to make ASCII-only strings in an ASCII-compatible encoding (that includes of course UTF-8) VERY fast. Looking at the Shark profile after my changes, we could do better be a bit faster though because now a lot of time is spent in memory allocations done by str_resize_bytes (called indirectly by rb_ary_join). Making a big memory allocation from the start would probably make that faster. -- Ticket URL: <http://www.macruby.org/trac/ticket/1075#comment:2> MacRuby <http://macruby.org/>