Uniface User Forum

 View Only
  • 1.  Uniface10 speed test

    Posted 01-17-2023 08:58


    here a rudimentary test of how a pure client-server Uniface10 application works. The test values are also consistent with Uniface9. The seconds mentioned are just for comparative purpose and indicate the start/load time of the application (no database accesses).
    Uniface is processing on the client (no Anywhere etc., which indeed would solve this problem).
    The application used has some 500 forms and services, so not that large uar-file for the application. 

    Uniface = the interpreter (that is installed as you execute eg. swinuf10402011w32.exe)
    Application  = the uar-file containing the application forms, messages etc. + ini + asn + images etc.
    Locally = installed locally on client PC/Laptop

                                                Only Uniface locally    Uniface+Application on shared Drive    Uniface+Application locally
    Virusscan on client             4 sec                                                    15 sec                                            4 sec
    No virusscan                           3 sec                                                    10 sec                                           3 sec
    Vpn with virusscan              15 sec                                                   180 sec                                        8 sec
    Vpn no virusscan                 10 sec                                                    90 sec                                         7 sec

    I'm most intrested in the bad response time executing Uniface over VPN as Uniface is installed on the shared network drive.
    There seem to be no severe problem to have the Application on the shared network drive, but Uniface itself seem to be the problem.
    Very much is happening starting Uniface, which probably isn't good using eg. a VPN connection. I can't say that much about the speed of the Vpn connection but it shouldn't be that bad, ie. the test results are a bit surprising. 
    What makes Uniface (the interpreter) so slow loading itself over Vpn?
    Are there anything one can do/try expect installing Uniface locally on all clients? And yes I know that Uniface recommends installing Uniface locally.
    Any comment appreciated?

    Regards RogerW

    Roger Wallin
    Abilita Oy

  • 2.  RE: Uniface10 speed test

    Posted 01-18-2023 07:26
    Our experience is that Uniface is VERY sensitive about network latency. So over Wifi, VPN, slow networks -> slowliness.
    We made our own installer and distribution system for generating asn/ini files locally, installing the Uniface client locally and  download a local copy of the desired UAR. Only DB-access goes over the network. Files are scanned once and hashed by virusscanners.

    Wim van Eupen
    Xperthis NV
    Mechelen BE

  • 3.  RE: Uniface10 speed test

    Posted 01-18-2023 08:12

    Thanks Wim,
    we have recognised the same concerning sensitivity about network latency.
    Looking at procmon, there is a lot coming across the network, eg. "libcef.dll" is transfered in very many parts...

    I suppose the only thing to do is to put things locally or use Uniface Anywhere. 
    I mean as long as you have a Client-Server application, thats the only way to go, or then look over your slow network.

    Regards RogerW.

    Roger Wallin
    Abilita Oy

  • 4.  RE: Uniface10 speed test

    Posted 01-20-2023 08:48
    I am not sure how you come to your conclusions. Sorry. When I look at the timing then the only thing that becomes clear to me is that the network, and especially in combination with VPN, is a bottleneck. How do you determine that Uniface is sensitive to network latency? Uniface can only be as fast as the slowest chain in the system, which seems to be the network (and VPN) here.

    And during startup Uniface needs to load its dependencies, because otherwise it would not work. The libcef.dll is automatically loaded when the umsw.dll (the Windows GUI driver) is initialized. This is not something that the code does explicitly, but this is done implicitly by Windows, and Uniface has to wait until the requested module has been loaded. We have seen situations were preloading libcef.dll (using /preload; for details see: [USER_3GL]) improves the startup over a slow and unstable network. Hereby the specified DLL is loaded into memory at the beginning of the startup. And when the umsw.dll is initialized then libcef.dll is already in memory and does not need to be loaded anymore by Windows. It is possible that preloading the biggest DLLs might improve the startup time, but this is not something I have tested. This probably also will not make a difference in case an AntiVrus software is scanning (every time)  the loaded DLLs - this is just time spent outside of Uniface that holds up the start of the application.

    In other situations we have also seen that using UAR archives (located on an UNC path) is slower than accessing the same resources from a standardized directory (meaning the content of the UAR file unpacked to UNC path). Especially when the network is unstable then using UAR archives can make the application also more unstable than when standardized directories are used. Still, if the network is not stable then it is recommend to run everything locally, which will improve the stability and performance of the application.

    I hope this helps.

    Daniel Iseli
    Principal Technical Support Engineer
    Uniface Services
    Rocket Software, Switzerland