June 26, 2008

Faster compilation in Forms Builder

You can speed up the time for a "Compile All", when you close all nodes in the Object Navigator, so that the form shows only the name of the form. Then you press Ctrl+Shift+K for Compile All.


Compile-Times of a normal pl/sql-library with 70 program units


closed nodes : 2 sec
open nodes : 18 sec

Compile-Times of a big pl/sql-library with 130 program units

closed nodes : 2 sec
open nodes : 34 sec

Compile-Times of a medium form with 14 blocks

closed nodes : 3 sec
open nodes : 12 sec

Compile-Times of a big form with 24 blocks and much sourcecode

closed nodes : 6 sec
open nodes : 37 sec



With this little trick you can compile really fast !
try it
Gerd

5 comments:

Chris Muir said...

That's interesting. Any comment on why this occurs? Has it got to do with the little stars that it adds/removes while compiling that you can see when the navigator is expanded?

CM.

Charon said...

Thats a nifty trick i discovered myself some time ago too!

I can recommend another trick :
If the "Property Palette" is open because you had to edit something and the text-cursor is still in it when you compile with CTRL-SHIFT-K it sometimes takes quite a bit of time to compile too. You will then see the whole "Property Palette" flicker and CPU use go up to 100% for a while.
So to be safe close the "Property Palette" before you compile. This doesn't happen everytime you compile something but i couldn't find the reason for this yet.

Regards
Markus

Gerd Volberg said...

The problem seems to be the refresh-time of the displayed tree in the object navigator. Hundreds or thousands of screen refreshes are needed, when the nodes are open. That time is saved when the nodes are closed...

Chris Muir said...

Yeeks, this tells you how bad Forms is optimised. Interesting though, and thanks for the follow-up.

CM.

Anonymous said...

Here is my trick: If you do a compile and it is too late to close the nodes, just move a window - e.g. an explorer - over them. This also works as an accelerator :-)