FoxPro 2.0 Performance On 80286 Computer
FoxPro 2.0 Performance On 80286 Computers
-----------------------------------------
There's been some recent traffic discussing FoxPro performance on
AT-class 80286 processors. Here are some comments and suggestions
which may help clarify the situation.
General Comments
----------------
1. Acceptable FoxPro 2.0/LAN performance *is* achievable using 80286
processors. Fox itself runs a moderately large LAN system inhouse
comprising well over 200 workstations. Of these, around 40
workstations utilize AT-class 80286 processors and performance on
these workstations is perfectly acceptable. (We *do* use our own
wares.)
2. In general, FoxPro 2.0 performance on a LAN exceeds that of FoxPro
1.02, even on 80286 processors.
3. Regardless of processor, most Standard Version FoxPro/LAN
applications usually require either (a) a local hard disk or (b)
significant EMS memory to achieve good performance with either FoxPro
1.02 or FoxPro 2.0.
4. For FoxPro users, the most significant difference between 80386 (&
up) processors versus 80286 (& below) processors, is the amount of
memory which is available to FoxPro. Virtually all performance
problems with FoxPro on these lesser platforms is attributable to
limited memory availability.
This is particularly the case in LAN environments. Not only are
significant amounts of memory often required for the LAN shell, but on
286 processors it is far more difficult to relocate these TSR's
outside the lower 640KB. In many situations, users are forced to run
with less than 500KB of memory free.
This is acceptable if either a local hard disk or a significant amount
of EMS is available, but can be painful otherwise. This is because
FoxPro is forced to load and reload its code segments across the LAN.
Due to speed considerations, EMS is usually the better alternative.
Both a hard disk and EMS would be optimal.
The principle benefit of 80386 & up processors when running the
Standard version of FoxPro in this situation is the simplicity and
economy with which it's possible to create substantial amounts of EMS
by utilizing products like 386MAX, QEMM, etc.
5. Considerable energy on the forum has been spent in speculation
that differences in memory requirements between FoxPro 2.0 and earlier
versions is related to its overlay management strategy, the degree to
which its code is interwoven, etc.
In reality, the basic difference is *very* simple: FoxPro 2.0
comprises twice as much code as FoxPro 1.02. When you ran FoxPro 1.02
on an 80286, you had 10 pounds of peanuts in a 5-pound sack; with
FoxPro 2.0 you have 20 pounds of peanuts in the same sack. (To extend
this simile, the 80386 & up platforms represent a potential
10,000-pound sack.) In short, the memory management strategies
employed in FoxPro 1.02 simply wouldn't have worked in 2.0.
The new 2.0 memory management strategy generally works much better
than that of 1.02. Also, rather remarkably, FoxPro 2.0 has a
significantly smaller minimum memory "footprint" than does 1.02.
6. However, FoxPro 2.0's memory management strategy *is* different
from that of 1.02. Although the 2.0 strategy is normally better,
programs that were carefully designed to optimize performance under
1.02 may be less than optimal under 2.0. Some interface intensive
programs may perform no better or worse under 2.0 than under 1.02.
7. FoxPro 2.0's memory management strategy is designed to optimize
repetitive use of a set of features -- i.e., the usage pattern that
would be observed in running a real application program. This
strategy will not necessarily result in improvements in one-time usage
of a feature. And, of course, one-time usage is what you'll be
testing if you try this and that interactively.
8. If new FoxPro features are used extensively, the performance of
interface intensive FoxPro programs may be suboptimal if less than
512KB is available to FoxPro.
What You Can Do To Improve 80286 Performance
--------------------------------------------
1. Be certain you've applied the most recent patches. Some
performance related changes have been made since FoxPro 2.0's
release.
2. Call us. Our tech support group is happy to help you tune
both your hardware and software configuration to achieve
optimal performance. In most cases, we've been able to
resolve performance difficulties by this means.
For example, interactions with the resource file, location of
temporary files, the contents of CONFIG.FP, etc. are all
factors in achieving optimal performance.
3. If fine-tuning doesn't resolve your difficulties, we'll be
happy to look at your application to see if there are
adjustments which are possible either to your application, to
FoxPro itself, or to both which address specific performance
problems.
Where we've been given a chance, we've usually been able to resolve
performance difficulties. Where we've not been given a chance to
help, we haven't.
Fox's Performance Philosophy
----------------------------
We've tried very hard to achieve good performance across a wide
spectrum of hardware platforms. In general, FoxPro 2.0 succeeds
rather well at the inherently impossible task of being all things to
all people.
Considering that FoxPro 2.0 is twice as large as 1.02, we're very
pleased that it usually manages to run well in significantly less
memory than 1.02.
However, when backed into a corner during the development process, we
chose paths that wouldn't compromise performance on larger hardware
configurations.
In general, our focus has always been more on what FoxPro can utilize,
rather than on what's minimally required for it to run ... because
that way lies the future.
New Platforms
-------------
In planning for the future, you may want to bear in mind that the new
graphic platforms greatly escalate hardware requirements. For
instance, it's reported that Microsoft Windows NT has a minimum memory
requirement of 8MB.
In particular, FoxPro for Windows will be available only for 80386 &
up processors. That's because we know of no way to achieve acceptable
FoxPro for Windows performance on an 80286 processor.
Moral: If your plans include Windows, plan also on 80386 & up
processors and *lots* of memory.
Comments
Post a Comment