Граф коммитов

262 Коммитов

Автор SHA1 Сообщение Дата
Lourens Naudé a47f598d77
Reduce ONIG_NREGION from 10 to 4: power of 2 and testing revealed most pattern matches are less than or equal to 4 results
Closes: https://github.com/ruby/ruby/pull/2135
2019-05-07 21:58:55 +09:00
Nobuyoshi Nakada 77440e949b
Improve performance of case-conversion methods 2019-05-03 23:59:18 +09:00
nobu e1eb54b99d 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
2019-04-17 05:34:46 +00:00
eregon f2d6338574 benchmark/app_aobench.rb: complete commented code to write the image to a file
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66900 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-21 12:31:29 +00:00
eregon 32e259f097 benchmark/app_aobench.rb: remove extra printf arguments
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66899 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-21 12:31:20 +00:00
eregon dfe6918604 benchmark/app_aobench.rb: move `srand(0)` at the top
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-21 12:31:10 +00:00
mame 8a294e0f20 benchmark/app_aobench.rb: add `srand(0)`
To prevent noise for benchmark result.  Just for the case.
[Bug #15552]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-21 07:29:00 +00:00
mame be3a0c7042 benchmark/app_aobench.rb: add a magic comment
To support the change of default encoding.
It had not worked correctly since 2.0 :-)
[Bug #15552]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-21 07:13:32 +00:00
nobu 72ad092960 Time.strptime benchmarks
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66743 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-07 02:05:21 +00:00
mrkn d41fb6ce0b benchmark/range_last.yml: remove needless prelude
[ci skip]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66740 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-06 15:46:21 +00:00
mrkn bf6584b5d0 benchmark/range_last.yml: add benchmark cases
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66733 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-06 00:46:35 +00:00
mrkn 56a6dd66d4 benchmark/range_last.yml: add a benchmark of Range#last
[ci skip]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66721 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-05 10:07:40 +00:00
mrkn 8d473272db benchmark/complex_float_*.yml: New benchmarks
Add new benchmark scripts for binary operations of Complex with float
components.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66680 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-01 12:20:04 +00:00
shyouhei bc64df876e delete emacs mode lines [ci skip]
These settings are now covered by .dir-locals.el.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-27 06:12:09 +00:00
k0kubun 17ca870a4d benchmark/app_erb.yml: remove unused variable
3efcb74036 (r31762996)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66490 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-22 01:43:45 +00:00
tenderlove bf41340ebb Add benchmark for hash small literals
Co-Authored-By: Krzysztof Rybka <krzysztof.rybka@gmail.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66256 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-06 18:20:11 +00:00
samuel 5547c65bdf Rename fiber chain benchmark.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 10:17:08 +00:00
svn b58dc42abb * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 10:16:35 +00:00
samuel 20f1c6c185 Remove `Benchmark` times.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65851 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 10:16:34 +00:00
samuel 9a324cf9cc Better benchmark name.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 10:13:51 +00:00
svn 3f0ae69186 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 10:09:55 +00:00
samuel 12ae8c0813 Fix broken benchmark
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65843 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 10:09:53 +00:00
svn 635dd3408f * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65842 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 10:06:59 +00:00
samuel 995f6ee102 Fix code climate cognitive complexity issue
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65841 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 10:06:58 +00:00
svn acd84d3208 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65837 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 09:59:19 +00:00
samuel 748c497a6d Rewrite fiber benchmark
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65836 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 09:59:18 +00:00
ko1 f251ce9f48 don't use GC::Profiler on default.
* benchmark/gc/gcbench.rb: disable GC::Profiler on default.
  add -p option instead.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64872 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-28 05:28:12 +00:00
ko1 cebd2c4aba add small utility for benchmarking.
* benchmark/lib/load.rb: add small utility which requires
  benchmark-driver.rb. You can load this file and can
  use benchmark-driver.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-28 03:32:49 +00:00
shyouhei 02b52b2733 make opt_str_freeze leaf
Simply use DISPATCH_ORIGINAL_INSN instead of rb_funcall.  This is,
when possible, overall performant because method dispatch results are
cached inside of CALL_CACHE.  Should also be good for JIT.

----

trunk: ruby 2.6.0dev (2018-09-12 trunk 64689) [x86_64-darwin15]
ours: ruby 2.6.0dev (2018-09-12 leaf-insn 64688) [x86_64-darwin15]
last_commit=make opt_str_freeze leaf
Calculating -------------------------------------
                          trunk        ours
    vm2_freezestring     5.440M     31.411M i/s -      6.000M times in 1.102968s 0.191017s

Comparison:
                 vm2_freezestring
                ours:  31410864.5 i/s
               trunk:   5439865.4 i/s - 5.77x  slower



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64690 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-12 03:39:36 +00:00
nobu 7d6a26f2a1 Adding Enumerator::Lazy#uniq and Enumerator::Lazy#grep_v to proc chaining
[Feature #14994]

[Fix GH-1930]

From: Anmol Chopra <chopraanmol1@gmail.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-16 00:58:21 +00:00
k0kubun 706d266496 benchmark/README.md: skip showing --timeout option [ci skip]
because it's only available for limited platforms for now.
I'll make it portable and show it later.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63954 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-11 22:49:48 +00:00
k0kubun 3e93bf3b46 common.mk: upgrade benchmark_driver
benchmark/README.md: fix help output, which is changed on v0.14.6.
Especially `e1::path1,arg1,...; e2::path2,arg2` part was wrong since `,`
can't be used to split arguments anymore.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-11 00:34:32 +00:00
k0kubun 1053c3d4bf benchmark/README.md: some are defined with YAML [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-10 23:56:57 +00:00
k0kubun fdd7f57b97 benchmark/README.md: fix typo [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-10 16:03:51 +00:00
k0kubun 3efcb74036 benchmark: revise ERB benchmarks using YAML syntax
to improve the accuracy of measurement by stop using block.

benchmark/app_erb.rb -> benchmark/app_erb.yml: renamed and revised
benchmark/erb_render.rb -> benchmark/erb_render.yml: ditto

benchmark/README.md: follow renames

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63941 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-10 15:58:52 +00:00
k0kubun 498487ec2a benchmark/README.md: erb_render is no longer yml but rb [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63940 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-10 15:51:29 +00:00
k0kubun 301cb9ea7c benchmark/README.md: wording consistency in one sentence [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63939 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-10 15:49:42 +00:00
k0kubun 5d35664ad6 output/driver.rb: add output plugin to reproduce
the original behavior of benchmark/driver.rb.
Probably I won't use this but this is requested by ko1.

Use this with:
make benchmark OPTS="-o driver"

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-10 15:44:45 +00:00
k0kubun 020bb75808 revert r63899
this is no longer needed due to r63926

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63936 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-10 15:06:59 +00:00
k0kubun f328fe40b3 benchmark_driver/runner: add runners for metrics
supported by legacy benchmark/driver.rb.

benchmark/README.md: document them

common.mk: update benchmark_driver to correct 0.0 output and to fix
spacing format of `-o simple` and `-o markdown`.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-10 15:01:27 +00:00
k0kubun 79a8c10b0b runner/size.rb: fix metric passed to output
runner/peak.rb: ditto

This is needed to make commands like `make -C .ruby-svn benchmark
ITEM=erb OPTS="-r size -o simple"` succeed.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63932 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-10 14:16:57 +00:00
k0kubun 34eed0cd47 benchmark/README.md: add help output [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63931 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-10 13:41:13 +00:00
k0kubun 59ec265e33 benchmark/README.md: don't recommend alias installation [ci skip]
benchmark_driver is the official way to install benchmark_driver.
benchmark-driver is just an alias for it.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-10 13:36:44 +00:00
k0kubun 433af16167 benchmark: drop all bm_ prefix for legacy driver.rb
benchmark/*.rb is only benchmarks now. We don't need prefixes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-10 13:08:40 +00:00
k0kubun 8068d34cfe Revert "benchmark/*.yml: convert from benchmark/bm_*.rb"
This reverts r63900.

Having single-execution benchmark as a normal Ruby script is preferred
by ko1. I'm not a big fan of having inconsistent benchmark formats, but
I can understand some benefits of it.

common.mk: remove obsolsted benchmark-each PHONY declaration, support
running Ruby scripts added by this commit.

README.md: follow ARGS change

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-10 13:05:29 +00:00
k0kubun 12a38cbac0 benchmark: resurrect peak / size metrics
by adding runner plugins for them.

benchmark/lib/benchmark_driver/runner/peak.rb: added peak runner plugin
benchmark/lib/benchmark_driver/runner/size.rb: added size runner plugin
common.mk: allow using them

benchmark/memory_wrapper.rb: deleted in favor of those runner plugins

benchmark/README.md: document them

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63924 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-10 12:14:04 +00:00
k0kubun 443773836e benchmark/README.md: fix -e interface for v0.14 [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63919 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-09 16:43:42 +00:00
k0kubun 7bed459a26 benchmark/driver.rb: fully obsolete this
in favor of just using benchmark_driver.gem.

common.mk: The new `make benchmark` covers the both usages for old `make
benchmark` and old `make benchmark-each`. So `make benchmark-each` is
dropped now.

benchmark/README.md: Explain its details

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-09 16:31:35 +00:00
k0kubun 5b9ff71077 common.mk: upgrade benchmark_driver to v0.14
benchmark/driver.rb: deal with breaking changes which are actually
introduced for this driver.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63916 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-09 15:45:02 +00:00
k0kubun 6c4e05d2d8 file_rename.yml: allow running this on mswin/mingw
Suggested by MSP-Grep:
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/87883

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-09 13:20:25 +00:00