Jeff Clites writes:
> On Jan 15, 2004, at 8:26 PM, Benjamin K. Stuhl wrote:
> 
> >Thus wrate Dan Sugalski:
> >>At 10:13 AM -0800 1/13/04, Jeff Clites wrote:
> >>>Short version: I was originally going to argue for fully 
> >>>hierarchical namespaces, identified as above, but after turning this 
> >>>over in my head for a while, I came to the conclusion that 
> >>>namespaces are not conceptually hierarchical (especially as used in 
> >>>languages such as Perl5 and Java, at least), so I'm going to argue 
> >>>for a single string (rather than an array) as a namespace 
> >>>identifier.
> ...
> >Performance-wise, I would guesstimate that it's more-or-less a
> >wash between parsing strings and parsing multidimensional keys,
> >so as long as we precreate the keys (keep thm in a constant
> >table or something), I see no performance issues.
> 
> It turns out that it makes a big difference in lookup times--doing one 
> hash lookup v. several. I did this experiment using Perl5 (5.8.0): 
> Create a structure holding 1296 entries, each logically 12 characters 
> long--either one level of 12 character strings, or 2 levels of 6 
> character strings, or 3 levels of 4 character strings, or 4 levels of 3 
> character strings, and look up the same item 10 million times. Here is 
> the time it takes for the lookups:
> 
> 1-level: 14 sec.
> 2-level: 20 sec.
> 3-level: 25 sec.
> 4-level: 32 sec.
> 
> Conclusion: It's faster to do one lookup of a single, longer string 
> than several lookups of shorter strings.
> 
> Of course, as Uri pointed out, even if we go with hierarchical 
> namespaces, we could implement these internally as a single-level hash, 
> behind the scenes, as an implementation detail and optimization.

My two cents:  I don't care as long as we can toss symbol tables around
as PMCs, and replace symbol tables with different (alternately
implemented) PMCs.   I think it's possible to do this using a clever
ordered hash scheme even if we go one level, but it's something to keep
in mind.

Luke

> JEff
> 

Reply via email to