Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 16 Sep 2015 11:31:37 +0200
From: magnum <john.magnum@...hmail.com>
To: john-dev@...ts.openwall.com
Subject: Re: ldr_split_line() performance regression

On 2015-09-16 03:58, Solar Designer wrote:
> On Wed, Sep 16, 2015 at 03:49:44AM +0200, magnum wrote:
>> On 2015-09-16 02:16, Solar Designer wrote:
>>> Please keep any non-trivial processing out of ldr_split_line(), or at
>>> least limit it to only be done once (e.g., by using static variables).
>>
>> Ouch! I use to be careful with these things... but the ones for
>> "Disabled formats" were really bad. Fixed now, and loading of that
>> sample literally went from 2 minutes to 900 ms on my laptop...
>
> Thanks.
>
> Arguably, 900 ms is still too much for this sample.  On my Pentium 3,
> this command:
>
> time john -w=/dev/null pw-fake-unix
>
> takes 200 ms:
>
> real    0m0.215s
> user    0m0.097s
> sys     0m0.035s
>
> with non-jumbo john.  I understand that jumbo has a lot more formats to
> check each line against (for printing of those warnings), but perhaps
> there's something else going on as well.

Using -w=/dev/null it's 715 ms and using a build with -DDYNAMIC_DISABLED 
it's less than half: 317 ms. I have noticed that various dynamic 
initializations always come at top when profiling a short run that in no 
way involves dynamic. Some of them look very strange, like 10,000 
iterations of stuff... heck, are we brute forcing digits?

magnum

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.