[#27380] [Bug #2553] Fix pthreads slowness by eliminating unnecessary sigprocmask calls — Dan Peterson <redmine@...>
Bug #2553: Fix pthreads slowness by eliminating unnecessary sigprocmask calls
Issue #2553 has been updated by Andre Nathan.
2010/7/10 Andre Nathan <redmine@ruby-lang.org>:
[#27388] [Bug #2554] Net::FTP should not use MSG_OOB — Hongli Lai <redmine@...>
Bug #2554: Net::FTP should not use MSG_OOB
[#27393] Re: compressed pointers? — Roger Pack <rogerdpack2@...>
Martin wrote:
[#27420] closing of the stderr pipe not detected - issue in 1.9.1? — Robert Klemme <shortcutter@...>
Hi,
2010/1/5 Robert Klemme <shortcutter@googlemail.com>:
2010/1/5 Tanaka Akira <akr@fsij.org>:
[#27425] [Bug #2559] IO#write raises Errno::EINVAL instead of expected Errno::EPIPE — Hongli Lai <redmine@...>
Bug #2559: IO#write raises Errno::EINVAL instead of expected Errno::EPIPE
[#27429] [Bug #2560] IO.read not always closes the file — Vladimir Sizikov <redmine@...>
Bug #2560: IO.read not always closes the file
[#27437] [Feature #2561] 1.8.7 Patch reduces time cost of Rational operations by 50%. — Kurt Stephens <redmine@...>
Feature #2561: 1.8.7 Patch reduces time cost of Rational operations by 50%.
[#27447] [Bug #2564] [patch] re-initialize timer_thread_{lock,cond} after fork — Aliaksey Kandratsenka <redmine@...>
Bug #2564: [patch] re-initialize timer_thread_{lock,cond} after fork
[#27448] [Feature:trunk] adding hooks for better tracing — Yugui <yugui@...>
Hi,
[#27504] C can't instantiate over existing classes? — Roger Pack <rogerdpack2@...>
Is this expected? [1.9.1]
[#27522] require behavior in 1.9 with respect to loading files with different extensions — Dirkjan Bussink <d.bussink@...>
Hi,
Hi,
[#27545] [Feature #2594] 1.8.7 Patch: Reduce time spent in gc.c is_pointer_to_heap(). — Kurt Stephens <redmine@...>
Feature #2594: 1.8.7 Patch: Reduce time spent in gc.c is_pointer_to_heap().
Issue #2594 has been updated by Kurt Stephens.
[#27551] [Bug #2595] Add crc32_combine and adler32_combine to zlib API — Aaron Patterson <redmine@...>
Bug #2595: Add crc32_combine and adler32_combine to zlib API
Hi Aaron,
On Tue, Jan 19, 2010 at 10:22:25AM +0900, NAKAMURA, Hiroshi wrote:
[#27625] [Bug #2616] unable to trap in doze — Roger Pack <redmine@...>
Bug #2616: unable to trap in doze
[#27635] [Bug #2619] Proposed method: Process.fork_supported? — Hongli Lai <redmine@...>
Bug #2619: Proposed method: Process.fork_supported?
Issue #2619 has been updated by Luis Lavena.
Hi,
On Thu, Jan 21, 2010 at 11:27 PM, Yukihiro Matsumoto <matz@ruby-lang.org> w=
Hi,
On Fri, Jan 22, 2010 at 1:25 PM, Yukihiro Matsumoto <matz@ruby-lang.org> wr=
On Fri, Jan 22, 2010 at 9:06 PM, Charles Oliver Nutter
2010/1/21 Hongli Lai <redmine@ruby-lang.org>:
On 1/21/10 5:20 AM, Tanaka Akira wrote:
2010/1/21 Hongli Lai <hongli@plan99.net>:
On Thu, Jan 21, 2010 at 10:53 AM, Tanaka Akira <akr@fsij.org> wrote:
On Thu, Jan 21, 2010 at 12:49 PM, Vladimir Sizikov <vsizikov@gmail.com> wrote:
On 1/21/10 8:09 PM, Charles Oliver Nutter wrote:
2010/1/22 Vladimir Sizikov <vsizikov@gmail.com>:
On Thu, Jan 21, 2010 at 9:43 PM, Tanaka Akira <akr@fsij.org> wrote:
2010/1/22 Charles Oliver Nutter <headius@headius.com>:
Hi,
>> I propose a method Process.fork_supported? which returns whether fork is supported on the current platform. See attached patch.
On 1/25/10 3:46 PM, Roger Pack wrote:
[#27656] A patch to rdoc — Tetsu Soh <tetsu.soh.dev@...>
Hello everyone,
[#27670] able to re-require $0 — Roger Pack <rogerdpack2@...>
Currently with 1.9.x you cannot "re-require" a file, even if you pass
Hi,
Hi,
Hi,
[#27698] [Bug #2629] ConditionVariable#wait(mutex, timeout) should return whether the condition was signalled, not the waited time — Hongli Lai <redmine@...>
Bug #2629: ConditionVariable#wait(mutex, timeout) should return whether the condition was signalled, not the waited time
[#27701] [Feature #2631] Allow IO#reopen to take a block — Daniel Berger <redmine@...>
Feature #2631: Allow IO#reopen to take a block
[#27722] [Feature #2635] Unbundle rdoc — Yui NARUSE <redmine@...>
Feature #2635: Unbundle rdoc
Hi,
Issue #2635 has been updated by Yui NARUSE.
[#27748] [Bug #2636] Incorrect UTF-16 string length — Vincent Isambart <redmine@...>
Bug #2636: Incorrect UTF-16 string length
2010/1/24 Vincent Isambart <redmine@ruby-lang.org>:
What needs to be fixed here is the data, nothing else:
[#27753] [Bug #2637] unable to select for < 0.1s in windows — Roger Pack <redmine@...>
Bug #2637: unable to select for < 0.1s in windows
[#27757] [Bug #2638] ruby-1.9.1-p37[68] build on aix5.3 with gcc-4.2 failed to run for me because it ignores where libgcc is located. — Joel Soete <redmine@...>
Bug #2638: ruby-1.9.1-p37[68] build on aix5.3 with gcc-4.2 failed to run for me because it ignores where libgcc is located.
[#27790] [Feature #2643] test/unit redefinition check of test_* method — Yusuke Endoh <redmine@...>
Feature #2643: test/unit redefinition check of test_* method
[#27791] [Bug #2644] memory over-allocation with regexp — Greg Hazel <redmine@...>
Bug #2644: memory over-allocation with regexp
Issue #2644 has been updated by Greg Hazel.
[#27794] [Bug #2647] Lack of testing for String#split — Hugh Sasse <redmine@...>
Bug #2647: Lack of testing for String#split
[#27828] [Bug #2656] Inconsistent docs for Zlib. — Hugh Sasse <redmine@...>
Bug #2656: Inconsistent docs for Zlib. [ruby-core:27692]
[#27902] Ruby 1.8.7, rb_define_method and ArgumentError: wrong number of arguments (0 for 1) — Gerardo Santana Gez Garrido <gerardo.santana@...>
I have the following method defined in a C extension:
On 1/27/10 8:55 AM, "Gerardo Santana G=F3mez Garrido"
On Wed, Jan 27, 2010 at 11:18 AM, Eero Saynatkari
[#27912] [Bug #2669] mkmf find_executable doesn't find .bat files — Roger Pack <redmine@...>
Bug #2669: mkmf find_executable doesn't find .bat files
Issue #2669 has been updated by Luis Lavena.
[#27930] [Bug:trunk] some behavior changes of lib/csv.rb between 1.8 and 1.9 — Yusuke ENDOH <mame@...>
Hi jeg2, or anyone who knows the implementation of FasterCSV,
On Jan 28, 2010, at 10:51 AM, Yusuke ENDOH wrote:
On Jan 28, 2010, at 11:13 AM, James Edward Gray II wrote:
Hi,
On Jan 31, 2010, at 4:40 AM, Yusuke ENDOH wrote:
Hi jeg2,
[#27961] RCR: allow {select, collect, map} to accept symbol argument — Roger Pack <rogerdpack2@...>
Background.
This reply registers the suggestion by Roger to the redmine.
[ruby-core:27550] Re: better GC?
On Mon, Jan 11, 2010 at 8:27 AM, Paul Brannan <pbrannan@atdesk.com> wrote:
> For one application where we deployed both JRuby and Ruby 1.8, JRuby was
> able to significantly outperform Ruby 1.8 in terms of total cpu
> utilization and latency. =C2=A0However, JRuby with the default GC setting=
s
> still periodically became unresponsive for about 1-2 seconds throughout
> the running time of of the application. =C2=A0Switching to an incremental=
GC
> made these gaps disappear, but by that point it was just an experiment
> for my own curiosity; the amount of effort to setup JRuby and tune the
> GC exceeded the time allocated to the project. =C2=A0In the end I went on=
a
> 2-month vacation, and when I came back, the entire application had been
> rewritten in C++.
Some clarification of the pluggable GC stuff in the JVM (at least what
I know from Hotspot/OpenJDK...the other two major JVMs have their own
unique collectors).
* None of the major JVMs ever give heap space back to the system; if
they grow to 200MB, they'll never use less than 200MB. The
justification is that if you've run a process up to a certain size,
you're likely to need that size. It is possible to limit the growth
using a few simple flags that set minimum and maximum heap size.
* The GCs are not *live* swappable; you pick them at startup and
that's what you use for the lifetime of the process.
* There are many tunable settings, but most of those are also not
live; you set them at startup.
* Many of the settings can be left at defaults since Hotspot will try
to pick an appropriate GC and GC settings for your hardware (and will
adjust some GC behavior at runtime depending on how your application
behaves).
There are obviously way more tunables than most people ever need to
set, so generally running with the default "GC ergonomics" will allow
Hotspot to pick the best settings. It's not always perfect, of course,
so having the tunables is nice.
I thought it would be interesting to get some timings and GC output
for the three main JVM GCs, given the OP's benchmark:
The serial GC is the basic single-threaded collector.
~/projects/jruby =E2=9E=94 time jruby -J-XX:+UseSerialGC -e "(1..7).each{|n=
| a
=3D ['a']*(10**n); a.inspect;}"
real 0m4.538s
user 0m4.359s
sys 0m0.324s
The Parallel GC uses multiple threads to reduce pauses. My system has
2 cores, so I believe it defaults to 2 GC threads...both this and the
Concurrent Mark/Sweep collector would be more interesting on a system
with more cores.
~/projects/jruby =E2=9E=94 time jruby -J-XX:+UseParallelGC -e "(1..7).each{=
|n|
a =3D ['a']*(10**n); a.inspect;}"
real 0m5.489s
user 0m5.383s
sys 0m0.485s
~/projects/jruby =E2=9E=94 time jruby -J-XX:+UseParallelGC
-J-XX:ParallelGCThreads=3D1 -e "(1..7).each{|n| a =3D ['a']*(10**n);
a.inspect;}"
real 0m8.984s
user 0m5.793s
sys 0m0.605s
~/projects/jruby =E2=9E=94 time jruby -J-XX:+UseParallelGC
-J-XX:ParallelGCThreads=3D2 -e "(1..7).each{|n| a =3D ['a']*(10**n);
a.inspect;}"
real 0m5.251s
user 0m5.132s
sys 0m0.510s
~/projects/jruby =E2=9E=94 time jruby -J-XX:+UseParallelGC
-J-XX:ParallelGCThreads=3D3 -e "(1..7).each{|n| a =3D ['a']*(10**n);
a.inspect;}"
real 0m5.685s
user 0m5.146s
sys 0m0.658s
The Concurrent Mark-Sweep collector does the mark and sweep phases of
GC concurrent with program execution, but still stops the world for
compacting:
~/projects/jruby =E2=9E=94 time jruby -J-XX:+UseConcMarkSweepGC -e
"(1..7).each{|n| a =3D ['a']*(10**n); a.inspect;}"
real 0m4.860s
user 0m5.077s
sys 0m0.349s
The G1 "Garbage First" collector is a semispace collector that does
not have generations. It is intended to eventually replace the CMS GC
and provide more predictable pauses (CMS can occasionally cause really
long full GC pauses under high load):
~/projects/jruby =E2=9E=94 time jruby -J-XX:+UnlockExperimentalVMOptions
-J-XX:+UseG1GC -e "(1..7).each{|n| a =3D ['a']*(10**n); a.inspect;}"
real 0m9.098s
user 0m9.709s
sys 0m1.076s
Here's a nice article on tuning GC for Java 5 (which is EOL, but the
article applies well to Java 6+):
http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html
It might help guide potential solutions for MRI's GC.
- Charlie