diff options
| author | Kouhei Sutou <[email protected]> | 2016-07-27 13:58:07 +0900 |
|---|---|---|
| committer | Kouhei Sutou <[email protected]> | 2016-07-27 13:58:07 +0900 |
| commit | 6bb0775d7603d020e64fb68fbc78e184745e8b0d (patch) | |
| tree | 6bc46c3b2c8692bb8b0d0761bcc5c2080cbe3bac /src/hash.c | |
| parent | 3757b16dab96c687429a9cec7c2b498218ef0e27 (diff) | |
| download | mruby-6bb0775d7603d020e64fb68fbc78e184745e8b0d.tar.gz mruby-6bb0775d7603d020e64fb68fbc78e184745e8b0d.zip | |
Reduce needless Array generation in some String methods
Here are some benchmarks:
each_char:
# /tmp/each_char.rb
a = "a" * 1000000
a.each_char do |x|
end
Without this change:
% time bin/mruby /tmp/each_char.rb
bin/mruby /tmp/each_char.rb 1.07s user 0.02s system 99% cpu 1.088 total
With this change:
% time bin/mruby /tmp/each_char.rb
bin/mruby /tmp/each_char.rb 0.52s user 0.01s system 99% cpu 0.530 total
2 times faster with this change.
codepoints:
# /tmp/codepoints.rb
a = "a" * 1000000
a.codepoints do |x|
end
Without this change:
% time bin/mruby /tmp/codepoints.rb
bin/mruby /tmp/codepoints.rb 1.16s user 0.05s system 99% cpu 1.216 total
With this change:
% time bin/mruby /tmp/codepoints.rb
bin/mruby /tmp/codepoints.rb 0.56s user 0.02s system 99% cpu 0.589 total
Diffstat (limited to 'src/hash.c')
0 files changed, 0 insertions, 0 deletions
