Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Performance question
Message
From
31/01/2005 17:08:38
Mike Yearwood
Toronto, Ontario, Canada
 
 
To
31/01/2005 14:50:23
General information
Forum:
Visual FoxPro
Category:
Other
Miscellaneous
Thread ID:
00982276
Message ID:
00982490
Views:
31
Hi Rich

>A couple of questions about how much, and in what areas, performance gets improved.
>
>1. Is the improvement only in the initial load time, or does it continue even after the application is loaded into memory?
>
>3. Is the performance gain a function of how many users are on the system?
>
>4. Are there any particular commands or functionality which are improved more than others by moving everything local?

These questions are related to accessing the exe. I don't believe the entire exe is sent from the server and kept in the workstation's memory. I believe VFP loads some part of the exe and then goes back to the exe from time to time. Caching may mitigate this.

I made a little project with two forms. The first form was a straight vfp baseclass form. The second contained a button from a single vcx which contained a vfp baseclass command button. The exe with 37K. If it is loaded into main ram, that small a file should be proof.

I created MAIN.PRG and set it as the main program for the project:
LOCAL ;
  m.lnStart, ;
  m.lnSeconds, ;
  m.lnI

m.lnStart = SECONDS()
FOR m.lnI = 1 TO 1000
  DO FORM form1 NAME loForm LINKED NOSHOW
  RELEASE m.loForm
ENDFOR
m.lnSeconds = SECONDS()-m.lnStart
?"Form with no classes",m.lnSeconds

m.lnStart = SECONDS()
FOR m.lnI = 1 TO 1000
  DO FORM form2 NAME loForm LINKED NOSHOW
  RELEASE m.loForm
ENDFOR
m.lnSeconds = SECONDS()-m.lnStart
?"Form with one button from one vcx",m.lnSeconds

WAIT WINDOW "Press any key to exit!"
The startup time for launching the exe should not be computed by this code. So it should only be measuring the impact of running an exe NON locally.

I added the second form because it is possible that VFP would have to dig around in the exe for the vcx. If it is going back to the source exe, there should be a performance hit. If the remote exe is being copied to the local pc and run, I'd expect there to be no significant difference.

LOCAL REMOTE
form1 16.799 21.953
form2 18.173 22.190

a second run gave these numbers

LOCAL REMOTE
form1 14.109 18.976
form2 14.593 19.343

On the third run, I ran the exe on the remote pc (server) while running the exe from the remote machine gave these numbers.

SERVER REMOTE
form1 9.383 20.132
form2 9.153 19.745

So I think we can conclude that running the exe from a "server" is a continuous performance problem. I made the server run the same program to see if multiple users would affect the local pc's access to the shared exe. It seems it did slow it but only a little compared to the second run.

Some "startup time" would be added to both sides, but I'd expect it would be more on the remote side.

Specifically to question 3: The more people that are sharing a resource, the slower that resource will respond to any individual.

To question 4: any thing that is contained in the exe should be affected. VFP internal commands should not be.

>2. Do you get get the same kind of performance gains by moving APP files to the workstation?
>

Yes. The numbers are exactly the same. I believe vfp treats exes and apps quite similarly.

A launcher utility would compare the date/time of the exe on the server against the date/time of the exe on the local machine. If they are different, send the exe from the server to the local. If they are the same, run the local version. This process would reduce network traffic in the morning and if my numbers are any proof, throughout the day.

That should have the added benefit of improved data access performance as well as improved exe access.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform