This project is archived and is in readonly mode.
Performance improvements to multibyte utils
Reported by James Golick | March 16th, 2010 @ 05:01 PM | in 3.0.2
In the 2-3-stable branch, the ActiveSupport::Multibyte.clean() was doing this:
stripped = []; for c in string.split(//)
stripped << c if expression =~ c
end; stripped.join
That was creating tons of garbage. Actually, it was the single biggest creator of garbage in our requests (around 4500-6000 objects).
It was replaced with
string.split(//).grep(expression).join
...in master, which reduces the amount of garbage by about 70%. I backported that change to 2-3-stable:
http://github.com/jamesgolick/rails/commit/ff2f98173d398cc40f5d6e2f...
And I also added a patch of my own to reduce the amount of garbage in ActiveSupport::Multibyte.verify():
http://github.com/jamesgolick/rails/commit/eb96874f97b8e11f37f9c6c7...
and backported that too:
http://github.com/jamesgolick/rails/commit/69a5cad7f7c7d6f7498dd87a...
Comments and changes to this ticket
-
Yehuda Katz (wycats) March 27th, 2010 @ 08:47 AM
- State changed from new to resolved
- Tag changed from performance to performance, rails3
- Milestone cleared.
-
Jeremy Kemper October 15th, 2010 @ 11:01 PM
- Milestone set to 3.0.2
- Importance changed from to Low
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile »
<h2 style="font-size: 14px">Tickets have moved to Github</h2>
The new ticket tracker is available at <a href="https://github.com/rails/rails/issues">https://github.com/rails/rails/issues</a>