From: shyouhei@... Date: 2020-05-07T09:38:23+00:00 Subject: [ruby-core:98184] [Ruby master Feature#16837] Can we make Ruby 3.0 as fast as Ruby 2.7 with the new assertions? Issue #16837 has been updated by shyouhei (Shyouhei Urabe). If you recompile everything using `./configure cppflags=-DNDEBUG`, then those assertions are eliminated, to let compilers inline `rb_array_len` again. ---------------------------------------- Feature #16837: Can we make Ruby 3.0 as fast as Ruby 2.7 with the new assertions? https://bugs.ruby-lang.org/issues/16837#change-85424 * Author: k0kubun (Takashi Kokubun) * Status: Open * Priority: Normal ---------------------------------------- ## Problem How can we make Ruby 3.0 as fast as (or faster than) Ruby 2.7? ### Background * Split ruby.h https://github.com/ruby/ruby/pull/2991 added some new assertions * While it has been helpful for revealing various bugs, it also made some Ruby programs notably slow, especially Optcarrot https://benchmark-driver.github.io/benchmarks/optcarrot/commits.html ## Possible approaches I have no strong preference yet. Here are some random ideas: * Optimize the assertion code somehow * Enable the new assertions only on CIs, at least ones in hot spots * Not sure which places have large impact on Optcarrot yet * Make some other not-so-important assertions CI-only to offset the impact from new ones * Provide .so for an assertion-enabled mode? (ko1's idea) I hope people will comment more ideas in this ticket. -- https://bugs.ruby-lang.org/ Unsubscribe: