I'm facing a rather annoying issue that I can't seem to solve yet, and I wonder if one of you might have the solution.
I'm building a class / sub-class architecture for a software feature.
- Progress 11.6.2
- Class-oriented feature
- Using classes class with multiple level of inheritance (up to 6)
Say FClass inherits EClass, inheriting DClass, inheriting CClass,inheriting BClass, inheriting AClass
Say SimpleClass is a very simple class with a few properties
- FClass is of a fair size (around 20 methods, with 10 of them override methods), ~1300 lines
- A-B-C-D-EClass have between 3 to 10 methods, ranging from 120 to 350 lines
In any .p file if I do:
Def var myvar as SimpleClass no-undo.
Pressing ctrl-space avec ‘myvar:’ is pretty fast.
Pressing Ctrl space after ‘SUBS’ (to get SUBSTITUTE) is also immediate
However, if I do the same two actions in FClass: then the completion popup takes between 5 and 9 seconds to raise, with 100% of a CPU-Core used by javaw.exe
It seems to be faster in the source code of classes higher in the hierarchy. (~1 or 2 seconds)
It feels like everytime I try to auto complete a variable, a method name or a function, PDS is processing and reflecting in all the classes above the one being written.
Does this issue ring a bell ? I've searched a little to see the options that might be consuming process time or help to reduce the "auto completion time to process" but I hardly find anything.
I've seen something called "Meta Catalog" in PDS, not sure if this might be a solution.
if needs be I can provide some more information
Stay away from the meta catalog. It won't help with this.
1. Make sure your PROPATH isn't absurdly long.
2. Make sure your source and r-code folders are not on a network drive. local disks only.
3. Make sure your workspace metadata folders on not on a network drive. local disks only.
4. Make sure enough memory is allocated. Use 64 bit install, and setup to use at least -Xmx of 2GB
5. Make sure you have compile on save. Otherwise PDSOE has to reparse every file it needs to look at. reading r-code is much faster than building AST
6. Turn off auto complete. Leave it triggered on ctrl+space.
7. Consider refactoring your code so you don't have such a deep class hierarchy. Having more than 3 (arguably even less) levels of inheritance is usually a sign that your code is a good candidate for composition.
Mike, does OEDT require PDSOE? Is it an extension or is it a standalone tool?
It depends on PDSOE
1 - switched the PROPATH locations of classes as the first folder to watch : no improvement
I'm working on local disks only, so 2 and 3 are good.
4 - I can't sadly push Allocated memory to 2GB due to
5 - Already set
6 - Same
Thanks a lot for the suggestions.
I'm afraid that unless point 4 is to blame, they gave little positive results.
Few performance improvements are done w.r.t content assist and initialize tooling operations in 11.7.2 release. Upgrading to 11.7.2 or 11.7.3 can solve the performance issues w.r.t content assist.