On Fri, Sep 27, 2019 at 09:22:13AM +0200, Erik Skultety wrote:
On Thu, Sep 26, 2019 at 04:38:49PM +0100, Daniel P. Berrangé wrote:
> On Thu, Sep 26, 2019 at 05:34:49PM +0200, Ján Tomko wrote:
> > On Thu, Sep 26, 2019 at 02:16:04PM +0100, Daniel P. Berrangé wrote:
> > > On Thu, Sep 26, 2019 at 12:39:39PM +0200, Erik Skultety wrote:
> > > > On Tue, Sep 24, 2019 at 03:58:44PM +0100, Daniel P. Berrangé wrote:
> > > > question 1) what's the benefit of compiling a regex and using it
only once? Btw
> > > > python does cache every pattern passed to re.match (and friends) so
compilation
> > > > IMO hardly ever makes sense unless you're doing 1000s of searches
for the same
> >
> > Some of the scripts here are run on the whole libvirt codebase so that
> > is the case here. For example just removing the pre-compilation of
> > regexes for comments from the spacing check script bumped the execution
> > time from 6.5s to 7.4s
> >
> > Sadly, the one script where pre-compilation matters the most is the one
> > where separating them puts them far away from the usage to not fit on
> > one screen.
>
> I could do a little custom function that caches all regexes
>
> recache = {}
>
> def research(regex, line):
> global recache
> if regex not in recache:
> recache[regex] = re.compile(regex)
> return recache[regex].search(line)
I'm not sure how ^this would solve the slowdown Jano is seeing as this is
exactly what python should already be doing internally, IOW the slowdown Jano
reported is most likely caused by cache accesses which I don't think our own
custom cache would solve, so we probably do want to keep the compilation in even
though I personally don't mind the ~1 sec penalty here (compared to the 4x
slowdown in the next patch which I think we need to do better to resolve).
Yeah the slowdown Jano reports looks like a bigger problem to deal with.
I think it could still be worth doing it for this patch, since although
1 sec doesn't sound like much, with the huge number of scripts we have,
it all adds up.
Regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|