General information
Title:
Performance degradation with multiple users
I seem to be seeing a large degradation of performance in a FoxPro application as more and more workstations load the executable and
run it over the network.
The degradation becomes severe when two or more workstations are running some data-intensive function.
It is easy to get some part of the program to slow down by a factor of 10 in this way.
Experimentation suggests that some of this is due to FoxPro checking the status of record and file locks, as the degradation increases with the number of users and especially with instructions that either perform a lock or update a table (REPLACE, APPEND,INSERT, DELETE, and TABLEUPDATE).
I wrote a test application in FoxPro that executes a SEEK, gets a record lock in a free table and REPLACEs a value on that record.
It does this 30,000 times in a loop, using the same record each time.
When I run this executable over the network with two users, each user SEEKing, LOCKing and REPLACEing on a different record,
the performance typically slows down by a factor of 10. Since there is no contention for record locks, I am surprised by this performance.
I was under the impression that FoxPro has been used with great success in large, data-intensive applications with hundreds of users.
If so, I am at a loss as to why I am seeing this kind of performance.
Has anyone had experience with this sort of scenario? Is there any way to optimize performance in these circumstances?
Next
Reply
View the map of this thread
View the map of this thread starting from this message only
View all messages of this thread
View all messages of this thread starting from this message only