[m-rev.] for review: string switches using tries

Peter Wang novalazy at gmail.com
Mon Mar 2 16:51:32 AEDT 2015


On Tue, 24 Feb 2015 17:38:18 +1100, Michael Day <mikeday at yeslogic.com> wrote:
> Hi Zoltan,
> 
> > I don't have access to any real workloads in which switches on strings
> > are a nontrivial part of the task, so I am missing real data for part (b).
> > When other developers have had a chance to try out this diff and have found
> > that it works for them, I was planning to ask for volunteer performance
> > evaluators on the mercury-users list. I think it likely that Michael Day
> > would be interested.
> 
> We have a few semidet switches on strings, eg. for CSS property names, 
> which have lots of common prefixes like border-left, border-right, etc.
> 
> Peter Wang might like to test this, as he builds new compiler versions 
> more frequently than I do :)

Hi,

Here are the results for a real workload, Prince built in hlc.gc with
options -O5 --intermodule-optimisation --optimize-constructor-last-call
--string-trie-switch-size=N converting a document thesis.html.
Times are in user seconds, averaged over ten runs each.

3.3836s	--string-trie-switch-size=1 (no hash tables used)
3.5661s	--string-trie-switch-size=16
3.4245s	--string-trie-switch-size=64
3.4054s	--string-trie-switch-size=128
3.3586s	--string-trie-switch-size=256 (no tries used)

Peter



More information about the reviews mailing list