diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2019-04-17 05:34:46 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2019-04-17 05:34:46 +0000 |
commit | e1eb54b99d592c460fea4b0f897f5e8e61c96c07 (patch) | |
tree | d351193f488c5f3640753b32014c61dc86d444af /benchmark/string_split.yml | |
parent | 62c07674e06443075872bdc11662de6408bd00d2 (diff) |
string.c: improve splitting into chars
* string.c (rb_str_split_m): improve splitting into chars by an
empty string, without a regexp.
Comparison:
to_chars-1
built-ruby: 1273527.6 i/s
compare-ruby: 189423.3 i/s - 6.72x slower
to_chars-10
built-ruby: 120993.5 i/s
compare-ruby: 37075.8 i/s - 3.26x slower
to_chars-100
built-ruby: 15646.4 i/s
compare-ruby: 4012.1 i/s - 3.90x slower
to_chars-1000
built-ruby: 1295.1 i/s
compare-ruby: 408.5 i/s - 3.17x slower
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67582 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'benchmark/string_split.yml')
-rw-r--r-- | benchmark/string_split.yml | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/benchmark/string_split.yml b/benchmark/string_split.yml new file mode 100644 index 0000000000..84ffe8f6a7 --- /dev/null +++ b/benchmark/string_split.yml @@ -0,0 +1,7 @@ +prelude: | + str0 = [*0..9].join("") +benchmark: + to_chars-1: str0.split('') + to_chars-10: (str0 * 10).split('') + to_chars-100: (str0 * 100).split('') + to_chars-1000: (str0 * 1000).split('') |