dmd 1.060 and 2.045 release
Steven Schveighoffer
schveiguy at yahoo.com
Thu May 6 14:30:13 PDT 2010
On Thu, 06 May 2010 17:07:12 -0400, Walter Bright
<newshound1 at digitalmars.com> wrote:
> Steven Schveighoffer wrote:
>> That can't be it. The identifier shown by Alex is only 33 characters.
>> O(n^2) is not that slow, especially for smaller variables. There must
>> be other factors you're not considering...
>
> I recompiled dmd with the profiler (-gt switch) which confirmed it.
So a single unknown symbol (from Alex's example) which can be checked
against each existing symbol in O(n^2) time, takes 40 seconds on a decent
CPU? How many other symbols are there? 33^2 == 1089, if there are 10000
symbols, that's 10 million iterations, that shouldn't take 40 seconds to
run, should it? Are there more symbols to compare against? Do you use
heuristics to prune the search? For example, if the max distance is 2,
and the difference in length between two strings is >2, you should be able
to return immediately.
-Steve
More information about the Digitalmars-d-announce
mailing list