Faster startup and close times in PA 2017


  • Alpha Testers

    The fact that main Power Archiver 2017 executable is built with a high level language such as Delphi 10.1 (Berlin), makes it noticeable slower to start, and slower to close than other tools (less capable), such as WinRAR and 7-Zip.

    It is noticeable even in my quad core Intel Skyline at 3,2 Ghz with 20 GB of RAM and an SSD drive. For instance:

    CLOSING POWERARCHIVER
    It takes one to two seconds once I click on the cross window button, until it is closed. User experience will be better, if main window is hidden just after the close button is clicked, and then, the required deinitialization takes place in background with the window hidden.

    STARTING POWERARCHIVE
    Main executable is about 40 MB, compared with about 1 MB in 7-Zip and 2 MB in WinRAR, this makes it slowr to start, even if your efforts, so I guess there are some things that could be applied:

    1. Use Delphi dynamic linking against VCL. In this case, since Windows caches recently used DLL, subsequent PA restarts, will be faster than they are now.

    2. Move initialization to take place, the later the better. Specially if this is when the main GUI is presented. Maybe delaying the load of some DLL and so on.


  • conexware

    does PA 2017 take 1-2s to close or 2016? I can see no more delay in closing since version PA 2017. What AV are you using?

    As to the start, it has been optimized in 2017 compared to 2016. Right now it is best we can do. x64 version is slower to start but actual compression and decompression benefits outweight 0.5s slower start.

    thanks!


  • Alpha Testers

    The slow close is in 2017. No AV running.


  • conexware

    @nikkho can you please export your settings (Options> Save settings to…, or better regedit> HKCU>Software> PowerArchiverint) send them over to support at conexware dot com, to see if we can reproduce it here. Thank you!


  • Alpha Testers

    Email sent!


  • conexware

    @nikkho said in Faster startup and close times in PA 2017:

    Email sent!

    thanks, lets check it out.


  • Alpha Testers

    By the way, maybe an option to consider to speedup startup times, would be the choice to keep PA loaded in the systray, and thus, requiring any operation will avoid loading it again, and simply show the window.

    Nowadays, having allocated 45MB of RAM, reserved to PA, specially if you use to compress/decompress frequently, is a good choice.


  • conexware

    @nikkho thats reasonable suggestion… lets see.

    For some future versions, there was already discussion of adding ability to open several archives at once, as tabs (MDI interface). So you would skip that first load of PA together with reuse windows option.

    How fast is the loading on your end?

    A lot of work is always done on speeding things up since we add new features. x64 version of PA 2016 loaded almost 100% slower than 2017 (on my computer 2.25s vs 4.5s). x86 version of PA 2017 is fastest PA in past 10 years to start BUT, with x86 cant use all the memory we need for .pa format so we cant really use it unless it is on x86 system (loads 1.7s for me).

    Anything under 2s seems fast subjectively.

    I think problem might be when SSD disk is busy, and you try to load PA, it takes longer than usual, and thats where 40 MB size does not help. However it is usually very beneficial to have skins and images loaded in .exe when loading PA on idle computer. Hence the size. Skins we could even exclude (i believe 2 are loaded in exe, maybe 5MB size), but png images are very slow when it has to load few hundred from disk at runtime. Also, x64 version adds 10MB to the size.

    But your suggestion is good, we will see how applicable is to PA and when we can test it internally.

    Thanks!


  • Alpha Testers

    On my side, first load of PA 17.00.69 x64 from the SSD drive is same as you, 2-3 seconds. Next loads, are about 1,5-2 seconds.

    As comparison, 7-Zip takes about 0,5 seconds, and WinRAR 1 second on first load. I would say your points look good. Moving outside the EXE file everything which is not mandatory for PA, and loading them when needed at runtime, will improve things a lot.

    Also for PNG files as well as other resources, you can use FileOptimizer, which I am the author, by the way: http://nikkhokkho.sourceforge.net/static.php?page=FileOptimizer

    You should be able to reduce them about 20%-30%, not a big deal, but an improvement considering the effort to optimize them is almost zero.


  • Alpha Testers

    You can also save some additional kilobytes by stripping EXE and DLL headers. FileOptimizer can do it for you, or maybe you want to directly automate it in your build process after linking by using Leanify and PETrim and GNU Strip.

    Screenshot


  • conexware

    @nikkho said in Faster startup and close times in PA 2017:

    On my side, first load of PA 17.00.69 x64 from the SSD drive is same as you, 2-3 seconds. Next loads, are about 1,5-2 seconds.

    As comparison, 7-Zip takes about 0,5 seconds, and WinRAR 1 second on first load. I would say your points look good. Moving outside the EXE file everything which is not mandatory for PA, and loading them when needed at runtime, will improve things a lot.

    Also for PNG files as well as other resources, you can use FileOptimizer, which I am the author, by the way: http://nikkhokkho.sourceforge.net/static.php?page=FileOptimizer

    You should be able to reduce them about 20%-30%, not a big deal, but an improvement considering the effort to optimize them is almost zero.

    pngs are already tiny… problem is access time - there are hundreds and loading each takes time, so overall there is a massive difference when they are outside (PA will load in 6+ seconds).

    Overall, for computer like yours, it will make no difference with all the tests we did so far (and we spent few months early in the release just optimizing). But maybe there will be a difference on computers where disk is always doing something and thus PA loads in 4-5s.

    We will have to test it to make sure.

    Overall, maybe for PA 2018 we move for different skinning/toolbar solution, we could possibly eek another 0.2s-0.3s by that, without losing any features.

    But maybe solution with hiding it in bg/tray would be most interesting one. We have to spend some time checking it out. Thanks!


  • Alpha Testers

    Another idea to reduce startup time, is to optimize embedded resources. For instance:

    • MAINICON.ico is 292.878 bytes and when FileOptimized, it gets down to 33.961 bytes.
    • DXDOCKINGVS2005TARGET.bmp is 23.906 bytes and when FileOptimized, it gets down to 3.260 bytes.


  • I came exactly to submit a wish for faster startup time! Glad I found this thread. I benchmarked the startup time using the PassMark AppTimer and the following settings:
    0_1494949555622_PowerArchBenchmarkSettings.png

    Note I needed to open a small zip file, otherwise the window would get recognized immediately without even being visible. This will open/close PowerArchiver and log the startup times.
    I got these results with PA2016:
    C:\Program Files (x86)\PowerArchiver\POWERARC.EXE - 10 executions
    5.5576
    5.5796
    5.6077
    5.6391
    5.4462
    5.7956
    5.7484
    5.8043
    6.0803
    5.9100
    I got these results with PA2017 (x64):
    3.8749
    3.6198
    3.8846
    3.9920
    3.7549
    3.7141
    3.7790
    3.7693
    3.7528
    3.9696

    A significant improvement with 2017!! Thanks. I think the idea of recycling the instance by putting it in the tray is a great idea.


  • conexware

    @alexmiller what kind of cpu and OS do you have? I will somehow send you x86 to test on that setup too, it will be interesting to see 🙂

    thanks!



  • @spwolf I’m lucky to have a beast system: Dual Xeon E5-1650 3.2Ghz. I’m running latest Win10 Pro build 15063.

    As I read above, you are developing with Delphi? I don’t know what skinning technology you are using, but have you tried the DevExpress VCL controls and skinning technology? Perhaps it is more performant… I use their .NET controls suite and i’m very satisfied.



  • After lurking in the PA install folder, i’m pretty certain you already use DevExpress controls.


  • conexware

    @alexmiller said in Faster startup and close times in PA 2017:

    After lurking in the PA install folder, i’m pretty certain you already use DevExpress controls.

    yes, it is all devex controls, and they are beautiful and a bit slow.


  • conexware

    @nikkho wrote this in for PA 2018 🙂

    btw, hows closing speed of alpha?


  • Alpha Testers

    @spwolf Closing speed is perfect. It happens instantaneously.


  • conexware

    @nikkho thanks for letting me know.


 

1
Online

9.8k
Users

6.0k
Topics

36.6k
Posts

Copyright © 1998-2018 ConeXware, Inc.
All rights reserved. Privacy Policy