[#16116] RCRchive shutting down — "David A. Black" <dblack@...>

Hi everyone --

22 messages 2008/04/03
[#16119] Re: [ANN] RCRchive shutting down — "Robert Dober" <robert.dober@...> 2008/04/03

This is quite sad news, I feel that a mailing list does not offer all

[#16121] Re: [ANN] RCRchive shutting down — Yukihiro Matsumoto <matz@...> 2008/04/03

Hi,

[#16122] Re: [ANN] RCRchive shutting down — "Robert Dober" <robert.dober@...> 2008/04/03

On Thu, Apr 3, 2008 at 12:01 PM, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:

[#16123] issue tracking (Re: [ANN] RCRchive shutting down) — Yukihiro Matsumoto <matz@...> 2008/04/03

Hi,

[#16124] Re: issue tracking (Re: [ANN] RCRchive shutting down) — "Meinrad Recheis" <meinrad.recheis@...> 2008/04/03

On Thu, Apr 3, 2008 at 1:13 PM, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:

[#16128] RUBY_IMPLEMENTATION — Yukihiro Matsumoto <matz@...>

Hi,

60 messages 2008/04/03
[#16139] Re: RUBY_IMPLEMENTATION — Paul Brannan <pbrannan@...> 2008/04/03

On Thu, Apr 03, 2008 at 11:41:41PM +0900, Yukihiro Matsumoto wrote:

[#16143] Re: RUBY_IMPLEMENTATION — Eric Hodel <drbrain@...7.net> 2008/04/03

On Apr 3, 2008, at 10:59 AM, Paul Brannan wrote:

[#16146] Re: RUBY_IMPLEMENTATION — Yukihiro Matsumoto <matz@...> 2008/04/03

Hi,

[#16147] Re: RUBY_IMPLEMENTATION — Ezra Zygmuntowicz <ezmobius@...> 2008/04/03

[#16149] Re: RUBY_IMPLEMENTATION — Charles Oliver Nutter <charles.nutter@...> 2008/04/03

Ezra Zygmuntowicz wrote:

[#16155] Re: RUBY_IMPLEMENTATION — "Yemi I. D. Bedu" <yemi@...> 2008/04/03

Hello,

[#16158] Re: RUBY_IMPLEMENTATION — Charles Oliver Nutter <charles.nutter@...> 2008/04/03

Yemi I. D. Bedu wrote:

[#16175] Re: RUBY_IMPLEMENTATION — Eleanor McHugh <eleanor@...> 2008/04/04

On 4 Apr 2008, at 00:23, Charles Oliver Nutter wrote:

[#16194] Re: RUBY_IMPLEMENTATION — Chris Cummer <chris@...> 2008/04/04

On 4-Apr-08, at 3:05 AM, Eleanor McHugh wrote:

[#16195] Re: RUBY_IMPLEMENTATION — "Luis Lavena" <luislavena@...> 2008/04/04

On Fri, Apr 4, 2008 at 2:15 PM, Chris Cummer <chris@postal-code.com> wrote:

[#16240] syntax request — "ry dahl" <ry@...>

Often times when one has many long arguments and orders them like this

42 messages 2008/04/06
[#16263] Re: syntax request — "Bill Kelly" <billk@...> 2008/04/07

[#16266] Re: syntax request — "David A. Black" <dblack@...> 2008/04/08

On Tue, 8 Apr 2008, Bill Kelly wrote:

[#16282] Re: syntax request — Paul Brannan <pbrannan@...> 2008/04/08

On Tue, Apr 08, 2008 at 02:23:26PM +0900, David A. Black wrote:

[#16290] Could someone confirm signal handling is broken on OSX? — Dave Thomas <dave@...>

I've raised this before, but no one replied. I'd like to double check

12 messages 2008/04/08

[#16359] design meeting — Yukihiro Matsumoto <matz@...>

Hi,

18 messages 2008/04/12

[#16397] Ruby 1.8.7-preview1 has been released — "Akinori MUSHA" <knu@...>

Folks,

16 messages 2008/04/15

[#16482] Performance on method dispatch for methods defined via define_method — "Robert Dober" <robert.dober@...>

Hi

32 messages 2008/04/22
[#16483] Re: Performance on method dispatch for methods defined via define_method — Paul Brannan <pbrannan@...> 2008/04/22

On Wed, Apr 23, 2008 at 12:39:29AM +0900, Robert Dober wrote:

[#16484] Re: Performance on method dispatch for methods defined via define_method — "Robert Dober" <robert.dober@...> 2008/04/22

On Tue, Apr 22, 2008 at 8:46 PM, Paul Brannan <pbrannan@atdesk.com> wrote:

[#16487] Re: Performance on method dispatch for methods defined via define_method — "David A. Black" <dblack@...> 2008/04/22

Hi --

[#16488] Re: Performance on method dispatch for methods defined via define_method — "Robert Dober" <robert.dober@...> 2008/04/22

On Tue, Apr 22, 2008 at 10:44 PM, David A. Black <dblack@rubypal.com> wrote:

[#16490] Re: Performance on method dispatch for methods defined via define_method — "David A. Black" <dblack@...> 2008/04/22

Hi --

[#16501] Re: Performance on method dispatch for methods defined via define_method — ts <decoux@...> 2008/04/23

Robert Dober wrote:

[#16507] Drop :: as a . synonym — "David A. Black" <dblack@...>

Hi --

50 messages 2008/04/23
[#16511] Re: [RCR] Drop :: as a . synonym — Charles Oliver Nutter <charles.nutter@...> 2008/04/23

David A. Black wrote:

[#16512] Re: [RCR] Drop :: as a . synonym — "David A. Black" <dblack@...> 2008/04/23

Hi --

[#16525] Re: [RCR] Drop :: as a . synonym — Charles Oliver Nutter <charles.nutter@...> 2008/04/23

David A. Black wrote:

[#16527] Re: [RCR] Drop :: as a . synonym — "David A. Black" <dblack@...> 2008/04/23

Hi --

[#16534] Re: [RCR] Drop :: as a . synonym — Thomas Enebo <Thomas.Enebo@...> 2008/04/23

David A. Black wrote:

[#16546] Re: [RCR] Drop :: as a . synonym — "David A. Black" <dblack@...> 2008/04/24

Hi --

[#16552] Re: [RCR] Drop :: as a . synonym — "Jeremy McAnally" <jeremymcanally@...> 2008/04/24

Or changing #send to private...or (insert progressive but code

[#16564] Re: [RCR] Drop :: as a . synonym — Charles Oliver Nutter <charles.nutter@...> 2008/04/24

Jeremy McAnally wrote:

[#16567] Re: [RCR] Drop :: as a . synonym — "David A. Black" <dblack@...> 2008/04/24

Hi --

[#16570] Re: [RCR] Drop :: as a . synonym — Yukihiro Matsumoto <matz@...> 2008/04/24

Hi,

[#16531] Re: [RCR] Drop :: as a . synonym — "Eric Mahurin" <eric.mahurin@...> 2008/04/23

On Wed, Apr 23, 2008 at 9:21 AM, David A. Black <dblack@rubypal.com> wrote:

Re: Changing the algorithm of String#*

From: apeiros <apeiros@...>
Date: 2008-04-23 23:17:53 UTC
List: ruby-core #16545
Am 24.03.2008 um 09:29 schrieb Yukihiro Matsumoto:

> Hi,
>
> In message "Re: Changing the algorithm of String#*"
>    on Sun, 23 Mar 2008 05:44:06 +0900, apeiros <apeiros@gmx.net>  
> writes:
>
> |I recently played around and found String#* to be rather slow,
> |wondering why I dug in the source and found it copied only linearly.
> |That can be reduced to a logarithmic copying, so I rewrote the code  
> to
> |use an algorithm of logarithmic complexity. Please note that my C-fu
> |is rather weak, so please peer-review to code.
> |I hope you deem it worthy to be used in ruby :)
> |Zenspider btw. pointed out, that the same could be used with Array#*.
> |
> |The rewritten rb_str_times routine in string.c:
>
> Does this make any meaningful difference?  memcpy(), which is O(n)
> seems significant.
>
> 							matz.

Here are the numbers of a bench I did, 1000 iterations each:
                               user     system      total        real   
|   gain
---------------------------------------------------------------------- 
+--------
String#*  1Byte*10        0.000000   0.000000   0.000000 (  0.002699) |
String#** 1Byte*10        0.000000   0.000000   0.000000 (  0.002798)  
|   -3.5%
---------------------------------------------------------------------- 
+--------
String#*  1Byte*1000      0.040000   0.010000   0.050000 (  0.036235) |
String#** 1Byte*1000      0.000000   0.000000   0.000000 (  0.006490)  
| +458.3%
---------------------------------------------------------------------- 
+--------
String#*  1Byte*100_000   3.100000   0.340000   3.440000 (  3.438175) |
String#** 1Byte*100_000   0.110000   0.350000   0.460000 (  0.472152)  
| +628.2%
---------------------------------------------------------------------- 
+--------
String#*  1KB*10          0.010000   0.020000   0.030000 (  0.044639) |
String#** 1KB*10          0.020000   0.010000   0.030000 (  0.014168)  
| +215.1%
---------------------------------------------------------------------- 
+--------
String#*  1KB*1000        1.000000   3.250000   4.250000 (  4.312175) |
String#** 1KB*1000        1.240000   3.200000   4.440000 (  4.483295)  
|   -3.8%

The benchcode:
require 'benchmark'
require 'stringtimes2'

OneByte     = " ".freeze
OneKiloByte = (" "*1000).freeze
A = 1000

Benchmark.bm(32) { |x|
	x.report("String#*  1Byte*10") {
		A.times { OneByte * 10 }
	}
	x.report("String#** 1Byte*10") {
		A.times { OneByte ** 10 }
	}

	x.report("String#*  1Byte*1000") {
		A.times { OneByte * 1000 }
	}
	x.report("String#** 1Byte*1000") {
		A.times { OneByte ** 1000 }
	}

	x.report("String#*  1Byte*100_000") {
		A.times { OneByte * 100_000 }
	}
	x.report("String#** 1Byte*100_000") {
		A.times { OneByte ** 100_000 }
	}

	x.report("String#*  1KB*10") {
		A.times { OneKiloByte * 10 }
	}
	x.report("String#** 1KB*10") {
		A.times { OneKiloByte ** 10 }
	}

	x.report("String#*  1KB*1000") {
		A.times { OneKiloByte * 1000 }
	}
	x.report("String#** 1KB*1000") {
		A.times { OneKiloByte ** 1000 }
	}
}

I hope that helps. I wonder how those numbers compare to Tanakas code  
without floating point operations.

Regards
Stefan

In This Thread

Prev Next