[#16113] Strange idea... exporting from a scope — "Hal E. Fulton" <hal9000@...>

Hello...

33 messages 2001/06/01

[#16364] Re: Garbage Collection? — Michael Davis <mdavis@...>

Windows 2000 and linux (RedHat 6.2). I have run these tests on both OSs.

12 messages 2001/06/09

[#16400] Symbolic Computation III — Mathieu Bouchard <matju@...>

14 messages 2001/06/11

[#16502] Playing with Ruby Syntax (was: Initial thoughts about Ruby From a Smalltalk Programmer) — jweirich@...

Michael> Hi Everyone, I have to say I'm utterly fascinated by Ruby

9 messages 2001/06/15

[#16661] Problem running irb with Ruby 1.6.4 under FreeBSD 4.0 — Bob Alexander <balexander@...>

I've installed Ruby 1.6.4 on a FreeBSD 4.0 machine, and get the

11 messages 2001/06/20

[#16686] opening db files made by apache dbmmanage — Fritz Heinrichmeyer <fritz.heinrichmeyer@...>

14 messages 2001/06/21

[#16801] rb_define_class() vs Class.new() — Kero van Gelder <kero@...4050.upc-d.chello.nl>

Hi,

18 messages 2001/06/23
[#16802] Re: rb_define_class() vs Class.new() — ts <decoux@...> 2001/06/23

>>>>> "K" == Kero van Gelder <kero@d4050.upc-d.chello.nl> writes:

[#16841] RE: national characters is strings — "Aleksei Guzev" <aleksei.guzev@...>

Next week I'll try to rebuild Ruby with Unicode strings. But it would be

15 messages 2001/06/25
[#16842] Re: national characters is strings — matz@... (Yukihiro Matsumoto) 2001/06/25

Hi,

[#16843] Re: national characters is strings — "Aleksei Guzev" <aleksei.guzev@...> 2001/06/25

That's good enough. But I'm afraid this could ( not would ) cause string

[#16868] Something strange with Ruby's inheritance mechanism — Eric Jacoboni <jaco@...>

As Ruby beginner, i try some "canonical" OO scripts. Doing so, I've

14 messages 2001/06/25
[#16873] RE: Something strange with Ruby's inheritance mechanism — "Aleksei Guzev" <aleksei.guzev@...> 2001/06/26

[#16879] Re: Something strange with Ruby's inheritance mechanism — Mathieu Bouchard <matju@...> 2001/06/26

On Tue, 26 Jun 2001, Aleksei Guzev wrote:

[#16869] Something strange with Ruby's inheritance mechanism — Eric Jacoboni <jaco@...>

As Ruby beginner, i try some "canonical" OO scripts. Doing so, I've

12 messages 2001/06/25

[#16881] — "Aleksei Guzev" <aleksei.guzev@...>

32 messages 2001/06/26
[#16916] Re: Method overloading (option) Was: Re: — "Wayne Blair" <wayne.blair@...> 2001/06/26

[#16920] Re: Method overloading (option) Was: Re: — matz@... (Yukihiro Matsumoto) 2001/06/26

Hi,

[#16888] finalizers, destructors and whatnot — "David Leal" <david@...>

Hi all,

16 messages 2001/06/26

[#17037] keeping an Exception object alive — David Alan Black <dblack@...>

Hello --

19 messages 2001/06/28
[#17055] Re: keeping an Exception object alive — matz@... (Yukihiro Matsumoto) 2001/06/29

Hi,

[#17066] RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — David Alan Black <dblack@...> 2001/06/29

Hello --

[#17076] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — matz@... (Yukihiro Matsumoto) 2001/06/29

Hi,

[#17079] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — David Alan Black <dblack@...> 2001/06/29

Hello --

[#17138] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — matz@... (Yukihiro Matsumoto) 2001/07/02

Hi,

[#17141] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — David Alan Black <dblack@...> 2001/07/02

Hello --

[#17142] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — ts <decoux@...> 2001/07/02

>>>>> "D" == David Alan Black <dblack@candle.superlink.net> writes:

[ruby-talk:16751] Re: Symbols, and their use as hash keys

From: "Aristarkh A Zagorodnikov" <xm@...3d.ru>
Date: 2001-06-22 06:53:37 UTC
List: ruby-talk #16751
> -----Original Message-----
> From: Yukihiro Matsumoto [mailto:matz@zetabits.com]
> Sent: Friday, June 22, 2001 10:45 AM
> To: ruby-talk ML
> Subject: [ruby-talk:16749] Re: Symbols, and their use as hash keys
> 
> 
> Hi,
> 
> In message "[ruby-talk:16748] Symbols, and their use as hash keys"
>     on 01/06/22, "Aristarkh A Zagorodnikov" <xm@w3d.ru> writes:
> 
> |	May anyone enlighten me with knowledge of how symbol integer value
> |(Symbol#to_i) is generated ?
> 
> You're not suppose to understand that. ;-)
> 
> But if you really want to know the hidden magic, you can read
> rb_intern() int parse.y and ID2SYM() in ruby.h
Thanks ... visited ruby.h but forgot about parse.y

> |	Also, I'm interested why using it as a hash key is about 
> 5-8 times slower
> |then string of the same size ?
> 
> Symbols are immediate numbers.  We can compare them in one machine
> operation, instead of byte by byte comparison like strings.
Hehe ... I know this already ... but why they are _slower_ ?

test.rb (string keys, note that symbols are created too):
#	Disable GC for more correct benchmark (maybe stupid :)
GC.disable
#	Init vars
h = {}
j = 'a'
#	Loop
10000.times do |i|
	#	Advance string
	j.succ!
	#	Create symbol
	k = j.intern
	#	Add hash element
	h[j] = i
end

test2.rb (symbol keys):
#	Disable GC for more correct benchmark (maybe stupid :)
GC.disable
#	Init vars
h = {}
j = 'a'
#	Loop
10000.times do |i|
	#	Advance string
	j.succ!
	#	Create symbol
	k = j.intern
	#	Add hash element
	h[k] = i
end

Tests:
Linux ns 2.2.19 #2 SMP Wed Mar 28 13:43:37 PST 2001 i686 unknown
xm@ns:~$ ruby -v
ruby 1.7.1 (2001-06-12) [i686-linux]
xm@ns:~$ time ruby test.rb

real    0m0.262s
user    0m0.260s
sys     0m0.000s
xm@ns:~$ time ruby test2.rb

real    0m26.090s
user    0m26.040s
sys     0m0.020s

So symbols are 10 times slower than strings :(((
Maybe this is because of symbol space pollution or something like that ?


Aristarkh A Zagorodnikov, Lead Programmer, W3D Group
http://www.w3d.ru /// xm@w3d.ru /// ICQ UIN 36987938

In This Thread