-
-
Notifications
You must be signed in to change notification settings - Fork 92
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
A great amount of time for the win64_mingw73 arch #86
Comments
Thank @Luni-4 for report.
About 1, I checked its performance. library execution (pure python)
7zip command (C++)
Penalty is 5 sec / 30sec, 15%. You can add '-E <path to 7zip command>' explicitly to use external command. |
Thanks for your explanation @miurahr, but I can't understand why that doesn't happen with the Anyway, this is the performance of the |
Now you can see detailed log at https://dev.azure.com/miurahr/892bc5d7-3681-4359-bd29-fe00ca91ef10/_apis/build/builds/1581/logs/364 where a branch try to improve performance with threading for downloading and with multi-process for extraction, and adding detailed logs. Here is a part of logs
During extracting qtbase package, 12 packages are completed to download and start extracting, and 17 packages have been extracted. It seems that qtbase extraction in my note-pc takes just 30sec but it consumes 24 min on Azure Pipelines. Other processes mostly work fine but extraction of qtbase(200MB) and qt3d(100MB) takes loooong time. |
Thanks for your tests @miurahr! Hmm, that's pretty strange indeed. Could you please make a new release on In the meantime, I've downloaded and extracted |
You can use '[-E | --external <7zip command>] ' option for aptinstall. If it works for you, it is a problem on extraction library or related code. When specify the option, aqtinstall launch '7z x' command by 'subprocess.run()' python feature. Unfortunately there is a bug with '--external' option. Now I'm working for it. |
A root cause is 'dead lock'. When extracting mingw packages, all python process going to 'Sleep' state. https://docs.python.org/3/library/concurrent.futures.html#processpoolexecutor
Because py7zr extraction library uses 'concurrent.futures' to accelerate extraction in multi-thread when archive file is compressed with supporting concurrency, that is happen on large archives, aqt run extractor in the context of concurrent.futures that call py7zr which call futures. To solve a problem, we need to rethink a concurrency design. |
v0.7.4 released and I believe it reduce cases to slow down. |
Great! it takes only 2 minutes now! Thanks a lot @miurahr! :) Out of curiosity, would it be possible to reduce this time to 31s as the |
Unfortunately msvc downloads are total 90MB but mingw downloads are total 209MB in Qt 5.15.0, This means you need twice or 3rd times longer for mingw download and extraction than msvc packages. |
Issue here solved. |
Oh, I see. Thanks for your explanation! :) |
The
win64_mingw73
arch takes a lot of time to be installed. As you can see from here, it takes more than 17 minutes. Before it took only 1 minute, as you can see from here.If I use the
win64_msvc2017_64
instead, the problem doesn't occur.Thanks in advance for your help! :)
The text was updated successfully, but these errors were encountered: