This change includes the following updates:
- Added an environment variable `RUBY_TCP_NO_FAST_FALLBACK` to control enabling/disabling fast_fallback
- Updated documentation and man pages
- Revised the implementation of Socket.tcp_fast_fallback= and Socket.tcp_fast_fallback, which previously performed dynamic name resolution of constants and variables. As a result, the following performance improvements were achieved:
(Case of 1000 executions of `TCPSocket.new` to the local host)
Rehearsal -----------------------------------------
before 0.031462 0.147946 0.179408 ( 0.249279)
after 0.031164 0.146839 0.178003 ( 0.346935)
-------------------------------- total: 0.178003sec
user system total real
before 0.027584 0.138712 0.166296 ( 0.233356)
after 0.025953 0.127608 0.153561 ( 0.237971)
This commit adds an environment variable `RUBY_THREAD_TIMESLICE` for
specifying the default thread quantum in milliseconds. You can adjust
this variable to tune throughput, which is especially useful on
multithreaded systems that are mixing CPU bound work and IO bound work.
The default quantum remains 100ms.
[Feature #20861]
Co-Authored-By: John Hawthorn <john@hawthorn.email>
This commit changes RUBY_GC_HEAP_INIT_SIZE_{40,80,160,320,640}_SLOTS to
RUBY_GC_HEAP_{0,1,2,3,4}_INIT_SLOTS. This is easier to use because the
user does not need to determine the slot sizes (which can vary between
32 and 64 bit systems). They now just use the heap names
(`GC.stat_heap.keys`).
The old RUBY_GC_HEAP_INIT_SLOTS isn't really usable anymore as
it initalize all the pools by the same factor, but it's unlikely
that pools will need similar sizes.
In production our 40B pool is 5 to 6 times bigger than our 80B pool.
* man/ruby.1: `--copyright` and `--version` quit immediately, and
also `--verbose` if no scripts are given.
[ruby-core:86391] [Bug #14633]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63038 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* man/ruby.1: Update the paragraphs in "Rich Libraries" which
included a dead link.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56212 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* man/ruby.1, man/erb.1, man/irb.1, man/ri.1: Use the `Lk` macro
for hyperlinks, which has been available since mdocml 1.5.1
(released more than seven years ago).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56211 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* man/ruby.1 (SYNOPSIS): arguments of -F and -K are optional.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* man/ruby.1 (SYNOPSIS): remove extraneous space for -F option as
it does not allow spaces before its argument.
[ruby-core:71283] [Bug #11641]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52408 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c (GC_HEAP_FREE_SLOTS): move definition to match use order
(RUBY_GC_HEAP_GROWTH_SLOTS): s/factor/number of slots/
* man/ruby.1: add section for GC environment variables
[Feature #10197]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e