Announcing regex-tre-0.66 and benchmarks

Simon Marlow simonmar at
Wed Aug 9 11:48:56 EDT 2006

On 09 August 2006 15:14, Chris Kuklewicz wrote:

> For 10^5 characters on String:
> PCRE       0.077s
> DFA        0.131s
> TRE        0.206s
> PosixRE    0.445s
> Parsec     0.825s
> Old Posix 43.760s  (Text.Regex using splitRegex)
> Old Text.Regex took 43.76 seconds on 10^5 characters to do a task
> comparable to the one the others did (it ran splitRegex).  The new
> PosixRE wrapping took 0.445 seconds instead.  Yes it is two orders of
> magnitude faster, and this is because my wrapping only marshals the
> String to CString once.  Laziness cannot be worth 2 orders of
> magnitude of runtime.  This is why we needed a new wrapping, which has
> grown into the new library.

Right, I see the problem with Text.Regex.splitRegex, it repeatedly packs
the String into a CString.  But then why this result:

> BenchPCRE (102363,["bcdcd","cdc"],["bbccd","bcc"])
> total is 1.294s
.. etc. ... 
> BenchPosixRE (102363,["bcdcd","cdc"],["bbccd","bcc"])
> total is 91.435s

Was this the old Posix, or your new one?  If the new one, why is it so
slow compared to the others?


More information about the Glasgow-haskell-users mailing list