lmi
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lmi] Drastic slowdown related to wine upgrade?


From: Vadim Zeitlin
Subject: Re: [lmi] Drastic slowdown related to wine upgrade?
Date: Tue, 29 Jan 2019 00:55:01 +0100

On Fri, 25 Jan 2019 14:13:57 +0000 Greg Chicares <address@hidden> wrote:

GC> Since I upgraded from wine-3.x to wine-4.x the other day, the time it takes 
to
GC> run this command:
GC>   time make $coefficiency check_concinnity
GC>   make $coefficiency check_concinnity  3.50s user 0.98s system 8% cpu 
52.817 total
GC> has grown remarkably, from a few seconds to nearly a minute.
GC> Suppressing the
GC> xmllint command in that makefile target reduces the time to about four 
seconds,
GC> so that (pipelined) command is the culprit.
[...]
GC> which suggests that using wine in a pipeline is the problem:
GC> 
GC> /opt/lmi/src/lmi[0]$time (for z in *.cns *.ill *.xrc *.xsd; \               
GC>   do \
GC>     wine /opt/lmi/local/bin/xmllint --encode ASCII $z \
GC>     | tr --delete '\r' \
GC>     | diff \
GC>       --ignore-blank-lines \
GC>       --ignore-matching-lines='<\?xml' \
GC>       --unified=0 \
GC>       $z - \
GC>       || echo "... in file $z"; \
GC>   done;)
[...]
GC> I copied and pasted those exact command lines into the older chroot;
GC> here's a tabulation of the results:
GC> 
GC>   * wine-4.x
GC> ( for [...]; wine /opt/lmi/local/bin/xmllint  ASCI)  0.60s user 0.82s 
system 3% cpu 46.509 total
GC> ( for [...]; /usr/bin/xmllint --encode ASCII $z | )  0.09s user 0.07s 
system 83% cpu 0.197 total
GC>   * wine-1.x
GC> ( for [...]; wine /opt/lmi/local/bin/xmllint  ASCI)  0.48s user 0.65s 
system 75% cpu 1.486 total
GC> ( for [...]; /usr/bin/xmllint --encode ASCII $z | )  0.10s user 0.06s 
system 85% cpu 0.179 total
GC> 
GC> which clearly seems to establish that there's a wine regression here.
GC> 
GC> Vadim--Can you reproduce this in your 32-bit chroot?

 I don't have the old version of WINE any more, so I can't confirm that
it's a regression but I definitely can confirm that the latest version is
much, much slower. The commands I compared were:

[X*]: xmllint --encode ASCII *.cns *.ill *.xrc *.xsd >/dev/null
[FX]: for z in *.cns *.ill *.xrc *.xsd; do; /usr/bin/xmllint --encode ASCII $z; 
done
[PL]: ... the full multiline pipeline with tr and diff from above ...

and here are the minimal times of 10 iterations of each, except for the
last one, which I only ran twice as I wasn't patient enough to wait for ~6
minutes for 10 iterations to finish:

X* native:       0.02
FX native:       0.12
PL native:       0.13
X* WINE:         0.50
FX WINE:         1.21
PL WINE:        34.14

 Of course, running xmllint in a loop is noticeably slower than running it
just once because there is the program startup overhead and when running it
in a loop under WINE there is also the overhead of WINE's own startup. But
the slowness of the last command can't be explained by this...

GC> A web search for
GC>   winehq pipeline slow
GC> finds nothing clearly relevant, while
GC>   wine pipeline slow
GC> finds articles about petroleum pipelines near vineyards. But if you
GC> see the same problem I see, then it's probably worthwhile to devise
GC> a simple test case that the winehq or debian people can reproduce,
GC> because this may expose a serious problem that they don't know about.

 I guess I should do this, although I don't really know here is the problem
coming from. It's clearly not related to xmllint, as I can reproduce the
same kind of dramatic slowdown using just "cmd /c type sample.cns" instead.
And it's not related to "tr" because the same thing happens if I replace it
with cat. And it's not related to zsh as the same thing happens with bash.

 So my minimal reproducible example is that

        time (wine cmd /c type 'c:\windows\win.ini' >/dev/null)

takes 0.02s while

        time (wine cmd /c type 'c:\windows\win.ini' | cat >/dev/null)

takes 1.2s.

 If I open the bug with this, which "last good" WINE version should I
report? I.e. you wrote that you upgraded from wine-3.x, but would you
remember what was the value of "x"? Was it 3.0.3 from Stretch backports?

 Thanks,
VZ


reply via email to

[Prev in Thread] Current Thread [Next in Thread]