Poor Forms 4.5 Runtime Performance

From: John Howell <yorkie_at_praxis.co.uk>
Date: 1995/04/27
Message-ID: <1995Apr27.155230.1178_at_praxis.co.uk>#1/1


Hi

We've been having some problems with very poor performance of Forms 4.5 Runform. It seems to be considerably slower than 4.0.

Some background:

We have a fairly large (50 tables) database on a server. There are several client pc's running forms from this server. Oracle runform itself, along with SQL*Net etc is local to these pc's, while the forms themselves are centralised on the server. The frequency of use of these forms is low, the tables they access have very few rows (eg 10, 20), and the forms themselves are very simple (mostly purely updating a single table). Thus the speed of the database and network do not significantly affect the speed of the forms.

We want to create a main menu to call these forms (which have been developed in Forms 4.5), and also several other forms written in Visual Basic. The obvious way to create this menu is to use Forms 4.5 menu editor; thus you only have to connect to the database once, when this menu is invoked. Our problem is that it takes ridiculous amounts of time to invoke runform, and also to call the forms once this menu has been loaded. Unfortunately, our target environment is 486's with 8MB of memory; we have done some time trials on a few machines (all figures in seconds):

	  486/66	  486/66	  Pentium/66
	  8MB Ram	  16MB Ram	  16MB Ram

Test A:	  50		  21		  16
Test B:	  16		  13		  4
Test C:	  5		  1		  0

Test A is to load up runform, connect to the database and bring up the main menu.
Test B is to call a form.
Test C is to exit that form and return to the main menu.

The most worrying figures are for test B; having to wait 16 seconds is completely unacceptable to load up a form having selected it from a menu. Similarly 5 seconds to quit a form (what on earth is it doing?) is bizarre.

We have tweaked all the machines extensively; disk caching, permanent swapfiles etc have all been optimised. None of the forms are doing any significant work at startup.

We phoned Oracle support; they went through a similar optimisation process of the machines.

We then used a Windows 'Spy' type tool to see what was happening during these 15 second bursts of disk access. It seems to be simply due to the sheer amount of memory Forms 4.5 needs (and Oracle support agree with this). We have a very similar system using Forms 4.0, and we took measurements of the memory used of both systems before, and then during Runform. The results show that Forms 4.5 allocates approx 9MB, while Forms 4.0 allocates 6MB. Thus 4.5 starts thrashing the hard disk before a form even gets loaded on an 8MB machine; obviously this will kill performance. On a 16MB machine, loading time is still much worse as 4.5 is allocating an extra 3MB over Forms 4.0.

Memory Usage:

				Forms 4.0	 Forms 4.5
				---------	 ---------
Before starting Runform:	1,966,768	 2,496,064
During Runform:			8,121,248	11,519,360
Increase due to Runform:	6,154,480	 9,023,296

The reason for this is that 4.5 has a whole stack of extra modules not in 4.0 (eg VBX support, OLE2, NLS etc), as well as having slightly more hungry executables and DLL's. The problem is that it loads ALL of them up, even though our forms don't ue VBX's, DDE, OLE2 etc. There seem to be no command-line parameters to stop sections loading up, and we can't remove sections through the Oracle.ini file.

The annoying thing is that Oracle claim that the minimum spec for Runform 4.5 is a 386 with 8MB. This is pretty unrealistic; if you take out the memory used by Windows itself (2 - 2.5MB), and SQL*Net then you may get a figure under 8MB. But you can't run a form without either of these...

Any ideas?

--

John Howell, aka yorkie_at_praxis.co.uk

Praxis plc, 20 Manvers Street, Bath, BA1 1PX, UK. The software engineering company of Touche Ross Management Consultants.
--

John Howell, aka yorkie Received on Thu Apr 27 1995 - 00:00:00 CEST

Original text of this message