aboutsummaryrefslogtreecommitdiffstats
path: root/benchmark
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2019-04-17 05:34:46 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2019-04-17 05:34:46 +0000
commite1eb54b99d592c460fea4b0f897f5e8e61c96c07 (patch)
treed351193f488c5f3640753b32014c61dc86d444af /benchmark
parent62c07674e06443075872bdc11662de6408bd00d2 (diff)
downloadruby-e1eb54b99d592c460fea4b0f897f5e8e61c96c07.tar.gz
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')
-rw-r--r--benchmark/string_split.yml7
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('')