Uniface User Forum

 View Only
  • 1.  Uniface 10.4 Compilation Performance

    PARTNER
    Posted 07-06-2022 06:47

    Hi,

    We're seeing long compile times in our Uniface 10.4 development environment, with more complex components taking upwards of 90 to 120 seconds to compile each time. Though we've never had super quick compilation under Uniface 10, in particular, this does seem to have got worse, though I'm not really sure what would be considered a "normal" compile time.

    Has anyone else seen something similar, or have any ideas what might be contributing (or what to look in to)? We're running patch 10.4.01.019, if that makes any difference.

    Thanks,

    David



    ------------------------------
    David Reed
    Tribal Group
    ------------------------------


  • 2.  RE: Uniface 10.4 Compilation Performance

    ROCKETEER
    Posted 07-07-2022 06:36

    Hi David,

    Where exactly do you see the long compile times? Is this when compiling from the command line or within the IDE?

    In case it is the latter then the setting $MESSAGE_LEVEL can certainly have an impact on performance. When using the value 0 ("Display error, warning, and information messages. Equivalent to /inf") can generate a lot of compiler messages that need to be parsed before it can be shown in the Compiler Output tab. Using 1 (error & warning messages) or 2 (only error messages) should speed up the process. But this, of course, comes at a cost (less compiler info).

    At this moment I am, however, not aware that Uniface 10.4 is any slower than a comparable patch level of version 10.3, or version 10.3 in general.

    Thanks,
    Daniel



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



  • 3.  RE: Uniface 10.4 Compilation Performance

    PARTNER
    Posted 07-07-2022 07:01
    We're seeing fairly slow compilation from both the command line and within IDE, as far as I'm aware, though it is definitely worse within IDE. I'll give it a try with a lower message level and see what difference this makes. Thanks for the suggestion.

    Thanks,
    David

    ------------------------------
    David Reed
    Tribal Group
    ------------------------------



  • 4.  RE: Uniface 10.4 Compilation Performance

    PARTNER
    Posted 07-08-2022 04:53

    Sadly the lower message level didn't seem to make any discernable difference to the compile times, so we'll have to continue with our investigations. I guess it's at least good to know that this isn't something that has been reported by others, which may suggest some kind of infrastructure/set-up problem on our end.

    Thanks,

    David



    ------------------------------
    David Reed
    Tribal Group
    ------------------------------



  • 5.  RE: Uniface 10.4 Compilation Performance

    ROCKETEER
    Posted 07-08-2022 05:14
    Thanks for the info.

    May I assume that the output is not written to a local resource/disk? You could test if it makes a difference if everything is local (including $resources_output, files like *.cmi or *.???lst, ...).

    I hope this helps.

    Daniel

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



  • 6.  RE: Uniface 10.4 Compilation Performance

    PARTNER
    Posted 07-08-2022 06:36

    Thanks for the suggestion. Switching the CMI and *LST files over to be written to a local disk does make a massive difference, consistently halving the time it takes to complete, so it looks like we might be on to something there.

    What we have noticed is that if we delete the CMI and *LST files prior to running the compilation, then writing them to a network drive also results in the same halved compile time. If we then compile again, with the files in existence, we see the much slow compilation times again (which doesn't occur if recompiling when writing to a local drive).

    I think the issue we would have with writing to local drives would be that we have it set up so that all developer compilations write to that same network drive so that the list of modules/entries are present and up to date when another developer opens that same form in IDE later on.

    If we switch to local drives then wouldn't developers need to re-compile the form each time they opened it, before they would see the up to date list of entries on the right-hand side of the IDE? If that's the case, that would be a significant usability issue for us I suspect.

    Thanks,

    David



    ------------------------------
    David Reed
    Tribal Group
    ------------------------------



  • 7.  RE: Uniface 10.4 Compilation Performance

    ROCKETEER
    Posted 07-08-2022 11:39

    Thanks for the info. Interesting to know.

    Regarding the CMI files: indeed, in case the files are stored locally then a developer would need to compile a component first in order to get the up-to-date data in the Compiled Module Info tab on the right-hand side of the component editor.

    But maybe it would be an option to do the compilation on a server (writing the CMI files "locally")? The developers then could access the up-to-date CMI files through a common share. At this moment there is no straight forward way to do this from the IDE. But you could create a Worksheet or user-defined menu that calls a remote service which does the compilation on the server. Just an idea. But I guess there is room for improvement here.

    I hope this helps.

    Daniel



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



  • 8.  RE: Uniface 10.4 Compilation Performance

    PARTNER
    Posted 07-11-2022 03:33
    Thanks for your help. At least we've now got some things to be looking in to.

    ------------------------------
    David Reed
    Tribal Group
    ------------------------------



  • 9.  RE: Uniface 10.4 Compilation Performance

    PARTNER
    Posted 12-09-2022 05:56
    I thought it was probably worth an update on where we're at currently with this.

    We've found that this only seems to be a significant issue in our Linux-based development environment (which writes the various shared CMI/*LST files to a shared network drive), and not in our Windows-based development environment (which writes the files to that same shared network drive).

    As mentioned previously, we found that deleting the CMI/*LST prior to running the compilation helped a lot, but we've since confirmed that deleting the actual compiled resources makes no difference.

    With that knowledge, we've made two changes that have improved compilation times for us:
    1) Changed the $SYMBOL_TABLE assignment file setting from 2 to 0 - we don't use the Cross Reference functionality, and found that this was adding between 25 and 30% on to overall compilation time.
    2) Implemented a worksheet in IDE that triggers a $ude("delete"...) on the "listing", prior to running a $ude("compile"...). We do lose use of the Compiler Output tab, but we can still access the messaging from the compilation, making it workable. Though not ideal, the improvements seem to be worth it, as we're finding that this can improve compilation time for us by around 50%.

    With the two changes, one of our more complex components has improved from just under two minutes to just over 30 seconds and, though we're not quite seeing the same improvements in other components, improvements elsewhere are fairly decent too.

    ------------------------------
    David Reed
    Tribal Group
    ------------------------------