[#12073] Re: Ruby is much slower on linux when compiled with --enable-pthread? — "M. Edward (Ed) Borasky" <znmeb@...>

-----BEGIN PGP SIGNED MESSAGE-----

9 messages 2007/09/04

[#12085] New array methods cycle, choice, shuffle (plus bug in cycle) — David Flanagan <david@...>

Four new methods have been added to Array the Ruby 1.9 trunk. I've got

81 messages 2007/09/06
[#18036] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — Charles Oliver Nutter <charles.nutter@...> 2008/07/31

Restarting this thread because I missed it the first time around and

[#18037] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — Yukihiro Matsumoto <matz@...> 2008/07/31

Hi,

[#18038] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — "Gregory Brown" <gregory.t.brown@...> 2008/08/01

On Thu, Jul 31, 2008 at 7:50 PM, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:

[#18046] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — Michael Neumann <mneumann@...> 2008/08/01

Gregory Brown wrote:

[#18048] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — Charles Oliver Nutter <charles.nutter@...> 2008/08/01

Michael Neumann wrote:

[#18051] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — "David A. Black" <dblack@...> 2008/08/01

Hi --

[#18053] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — "Wilson Bilkovich" <wilsonb@...> 2008/08/01

On 8/1/08, David A. Black <dblack@rubypal.com> wrote:

[#18074] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — David Flanagan <david@...> 2008/08/01

Wilson Bilkovich wrote:

[#18080] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — Yukihiro Matsumoto <matz@...> 2008/08/02

Hi,

[#18097] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — "Pit Capitain" <pit.capitain@...> 2008/08/03

2008/8/2 Yukihiro Matsumoto <matz@ruby-lang.org>:

[#18040] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — Jim Weirich <jim.weirich@...> 2008/08/01

On Jul 31, 2008, at 7:33 PM, Charles Oliver Nutter wrote:

[#18056] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — Thomas Enebo <Thomas.Enebo@...> 2008/08/01

Jim Weirich wrote:

[#18059] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — Jim Weirich <jim.weirich@...> 2008/08/01

On Aug 1, 2008, at 1:53 PM, Thomas Enebo wrote:

[#12096] Next 1.8.6 on Sept. 22 — Urabe Shyouhei <shyouhei@...>

Hi all.

28 messages 2007/09/09

[#12201] how about actors implemented in ruby-core itself — hemant <gethemant@...>

Hi,

12 messages 2007/09/20

[#12248] arbitrary Unicode characters in identifiers? — David Flanagan <david@...>

12 messages 2007/09/26

[#12284] gc.c -- possible logic error? — Hugh Sasse <hgs@...>

I've been looking at Tom Copeland's memory allocation problem:

36 messages 2007/09/28
[#12329] Re: gc.c -- possible logic error? — Tanaka Akira <akr@...> 2007/10/01

In article <Pine.GSO.4.64.0709281302390.26570@brains.eng.cse.dmu.ac.uk>,

[#12305] Will 1.8.6 remain compiled with VC6? — "Luis Lavena" <luislavena@...>

Hello Core developers.

29 messages 2007/09/30
[#12306] Re: Will 1.8.6 remain compiled with VC6? — "Austin Ziegler" <halostatue@...> 2007/09/30

On 9/30/07, Luis Lavena <luislavena@gmail.com> wrote:

Re: Ruby is much slower on linux when compiled with --enable-pthread?

From: "M. Edward (Ed) Borasky" <znmeb@...>
Date: 2007-09-04 23:00:01 UTC
List: ruby-core #12073
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Adam Kramer wrote:
> Hi,
> 
> I was seeing significant performance differences between ruby 1.8.4 on
> an old distribution and a newer one. I spent some hours tracking down
> the differences and it appears that --enable-pthread causes ruby to be
> significantly slower. I tried searching for the reason why this is but
> came up empty handed.
> 
> On Ubuntu 6.06 I built a new binary of 1.8.4 (from the package source
> - nothing else was different) with --disable-pthread and compared the
> execution times of the benchmark files in SVN. Here are the results:
> 
> Second column is with --enable-pthread, third column
> --disable-pthread. Look at almost every test that took more than a
> second, of real note is app_pentomino and loop_times.
> app_answer      0.674           0.504
> app_factorial   0.020           0.013
> app_fib      9.377           6.623
> app_mandelbrot  2.384           1.862
> app_pentomino   158.618         84.739
> app_raise       1.176           0.964
> app_strconcat   1.197           1.215
> app_tak 12.390          8.158
> app_tarai       9.872           6.473
> loop_generator  22.547          15.394
> loop_times      11.616          4.050
> loop_whileloop  9.334           9.491
> loop_whileloop2 1.878           1.906
> so_ackermann    5.038           9.291
> so_array        10.608          6.376
> so_concatenate  3.633           1.620
> so_count_words  0.272           0.267
> so_exception    3.012           2.221
> so_lists        1.302           1.023
> so_matrix       2.753           1.906
> so_nested_loop  9.877           5.060
> so_object       5.705           3.780
> so_random       1.967           1.752
> so_sieve        0.627           0.591
> vm1_block       35.529          19.547
> vm1_const       14.287          14.482
> vm1_ensure      28.497          15.053
> vm1_length      18.162          18.991
> vm1_rescue      18.771          11.221
> vm1_simplereturn        31.387          16.038
> vm1_swap        16.581          16.850
> vm2_array       4.078           4.129
> vm2_case        4.041           4.076
> vm2_method      21.762          9.765
> vm2_mutex       31.299          17.910
> vm2_poly_method 25.094          13.121
> vm2_poly_method_ov      4.192           4.125
> vm2_proc        8.404           5.506
> vm2_regexp      3.919           3.743
> vm2_send        5.280           3.780
> vm2_super       7.573           4.337
> vm2_unif1       4.833           3.183
> vm2_zsuper      8.120           4.848
> vm3_thread_create_join  0.012           0.008
> vm3_thread_mutex        5.787           3.278
> 
> It appears that when compiled with --enable-pthread ruby will call
> sigprocmask MANY MANY more times than without. You can verify this
> with strace -c:
> $ strace -c ruby -e '1.upto(100000) {|i| i.to_s}'
> % time     seconds  usecs/call     calls    errors syscall
> ------ ----------- ----------- --------- --------- ----------------
> 100.00    0.000655           0    200006           sigprocmask
> 
> Yeah - it called sigprocmask over 200,000 times during that 100,000
> iteration loop.
> 
> When compiled with --disable-pthread and running the same command,
> rt_sigprocmask gets called 4 times.
> 
> I also tested on OS X, ruby is compiled with --enable-pthread but
> sigprocmask doesn't get called an inordinate number of times, so this
> may be a linux-only issue.
> 
> Has anyone else witnessed this? Is this a "feature" that's to be expected?
> 
> 
> 
> 
> --
> Thanks!
> -Adam
> 
> 

Yeah -- it's probably not only Linux-specific but also dependent on your
 compiler and run time library versions. What I would suggest is
compiling Ruby with profiling and seeing where in the Ruby interpreter
these calls are.

Incidentally, if you use Tk and Ruby, both have to be compiled with the
same setting for pthread usage.

(cross-posted to Ruby Core) :)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFG3eNP8fKMegVjSM8RAmTYAKDKGRikNc5fYQB7aiYW1+a7nfZG/wCfQIHl
b69A7ZvwALfkBOxnCfyvRX8=
=mTkA
-----END PGP SIGNATURE-----

In This Thread

Prev Next