[#9381] Native Thread extension for 1.8 — "Abhisek Datta" <abhisek@...>
Hello,
[#9382] the sign of a number is omitted when squaring it. -2**2 vs (-2)**2 — <noreply@...>
Bugs item #6468, was opened at 2006-11-03 17:25
On 11/3/06, noreply@rubyforge.org <noreply@rubyforge.org> wrote:
Jacob Fugal wrote:
Hi,
Yukihiro Matsumoto wrote:
[#9385] merge YARV into Ruby — SASADA Koichi <ko1@...>
Hi,
On Nov 3, 2006, at 9:11 PM, SASADA Koichi wrote:
On 11/4/06, SASADA Koichi <ko1@atdot.net> wrote:
On Monday 06 November 2006 16:01, Kirill Shutemov wrote:
On Monday 06 November 2006 10:15, Sylvain Joyeux wrote:
On 11/6/06, Sean Russell <ser@germane-software.com> wrote:
On Monday 06 November 2006 13:37, Kirill Shutemov wrote:
On 11/6/06, Kirill Shutemov <k.shutemov@gmail.com> wrote:
On 11/8/06, Austin Ziegler <halostatue@gmail.com> wrote:
On 11/6/06, ville.mattila@stonesoft.com <ville.mattila@stonesoft.com> wrote:
On 2006-11-07 00:47:20 +0900, Kirill Shutemov wrote:
On 11/6/06, Marcus Rueckert <mrueckert@suse.de> wrote:
On Tue, 7 Nov 2006, Joshua Haberman wrote:
[#9402] fast mutexes for 1.8? — MenTaLguY <mental@...>
Many people have been using Thread.critical for locking because Ruby
On Mon, 6 Nov 2006, MenTaLguY wrote:
On Mon, 2006-11-06 at 23:17 +0900, Hugh Sasse wrote:
On Tue, 7 Nov 2006, MenTaLguY wrote:
On Mon, 6 Nov 2006, MenTaLguY wrote:
On Mon, 2006-11-06 at 23:21 +0900, khaines@enigo.com wrote:
On Mon, 2006-11-06 at 09:38, MenTaLguY wrote:
[#9450] Bikeshed: No more Symbol < String? — Kornelius Kalnbach <murphy@...>
Hi ruby-core!
Hi,
David wrote:
On Nov 7, 2006, at 2:28 AM, Yukihiro Matsumoto wrote:
Hi,
Hi --
Hi,
Too bad, I was rejoicing to remove the need of
[#9470] Ruby performanmce improvements — "Michael Selig" <michael.selig@...>
I know you guys are in the middle of YARV stuff, but I thought you might be
Hi,
[#9472] Re: fast mutexes for 1.8? — Brent Roman <brent@...>
At RubyConf 2005 I gave an off-the-wall little talk about the
[#9493] Future Plans for Ruby 1.8 Series — URABE Shyouhei <shyouhei@...>
This week Japanese rubyists were talking about the future of ruby_1_8
[#9515] External entropy pool for random number generator — "Kirill Shutemov" <k.shutemov@...>
In the attachment patch which allow to use external entropy pool for
Hi,
On 11/13/06, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
Hi,
On 11/13/06, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
Hi,
[#9520] Re: fast mutexes for 1.8? — Brent Roman <brent@...>
[#9540] Different return values for setter methods — "Marcel Molina Jr." <marcel@...>
>> class Setter; def set=(value) 1 end end
[#9547] Net::FTP should check the control connection on EPIPE — Simon Williams <simon.williams@...>
Hi,
Hi,
On Tue, Feb 06, 2007 at 11:23:01AM +0900, Shugo Maeda wrote:
[#9554] Ruby 1.[89].\d+ and beyond. — Hugh Sasse <hgs@...>
I've been thinking about how version numbers are restricting what we can do.
On Fri, 17 Nov 2006, Eric Hodel wrote:
On Nov 16, 2006, at 12:02 PM, Hugh Sasse wrote:
On 11/16/06, Eric Hodel <drbrain@segment7.net> wrote:
On Nov 19, 2006, at 6:35 AM, Robert Dober wrote:
On Nov 19, 2006, at 8:13 AM, James Edward Gray II wrote:
> What if we need to exceed 1.8.9?
On Nov 19, 2006, at 10:30 PM, Kornelius Kalnbach wrote:
On Mon, 20 Nov 2006, Eric Hodel wrote:
Hugh Sasse wrote:
[#9572] io_write (io.c) bug (and its fix) under MS Windows for GUI apps (rubyw) — "Mounir Idrassi" <idrassi@...>
Hi all,
[#9581] type information — Deni George <denigeorge@...>
Hi,
Nobuyoshi Nakada wrote:
[#9604] #ancestors never includes the singleton class (inconsistent) — <noreply@...>
Bugs item #6820, was opened at 2006-11-22 08:49
Hi,
> It is supposed to. Singleton classes (or eigenclasses, if you want to
On 11/27/06, Sylvain Joyeux <sylvain.joyeux@m4x.org> wrote:
> 2) You could think of all objects already having a singleton class
Re: fast mutexes for 1.8?
On Mon, 2006-11-06 at 23:21 +0900, khaines@enigo.com wrote:
> So, what would you suggest as a performance optimization to Mutex?
Principally, pushing the whole thing into C and using a better data
structure than a dynamically allocated C array of VALUEs (what underlies
Array) for the wait queue.
That way, we can eliminate a whole slew of Ruby method calls and
variable lookups, as well as making all the important wait queue
operations O(1). That complexity thing will probably matter less than
it should, since wait queues aren't normally that long, but eliminating
all those method calls should be a big win.
Here's a benchmark script which illustrates how things stand right now:
require 'thread'
require 'benchmark'
class Mutex
def noop
begin
nil
ensure
nil
end
end
end
n = 1_000_000
m = Mutex.new
Benchmark.bm do |x|
x.report( "raw:" ) { n.times { nil } }
x.report( "open-coded noop:" ) { n.times {
begin
nil
ensure
nil
end
} }
x.report( "noop method:" ) { n.times { m.noop { nil } } }
x.report( "open-coded critical:" ) { n.times {
saved = Thread.critical
begin
Thread.critical = true
nil
ensure
Thread.critical = saved
end
} }
x.report( "exclusive:" ) { n.times { Thread.exclusive
{ nil } } }
x.report( "open-coded lock:" ) { n.times {
m.lock
begin
nil
ensure
m.unlock
end
} }
x.report( "synchronize:" ) { n.times { m.synchronize
{ nil } } }
end
And the results on one of my machines:
user system total real
raw: 1.450000 0.370000 1.820000 ( 1.833878)
open-coded noop: 2.700000 0.520000 3.220000 ( 3.305178)
noop method: 5.140000 1.280000 6.420000 ( 6.590072)
open-coded
critical: 7.440000 0.830000 8.270000 ( 8.518001)
exclusive: 15.820000 2.880000 18.700000 ( 19.366240)
open-coded lock: 21.840000 2.590000 24.430000 ( 25.227391)
synchronize: 27.450000 3.490000 30.940000 ( 32.120969)
(Not a fast machine, evidently.)
But see, right now, the best choice for performance is open-coding an
ensure block with Thread.critical. That's not what we want if
Thread.critical will be going away.
I'm reasonably confident that I can get the no-contention case for
Mutex#synchronize down to somewhere in-between "noop method" and
"open-coded critical". At that point, Mutex#synchronize becomes the
most appealing option, making one less bump on the road when porting
code from 1.8 to 1.9.
-mental