>>>Mac Rubel had an execellant article a few issues back in the foxpro advisor about allocating memory using the SYS(3050,1,x) function. It had something to do with making sure that VFP wouldn't automatically grab swap space off of the hard drive. Using the article, I figured out that for my machine that SYS(3050,1,9000000) was the correct setting, but now I've added another 32 megs of memory, and I am wondering what to change the setting to.
>>
>>Ed Rauh recently steered me to using a little less than 1/2 RAM on my NT machine, and it seems to be working fine.
>
>Thanks bruce! For now, I'm gonna try 1/2 of what sys(3050) reports as available if I don't mess with the setting. Its a significant amount more than the old setting, so I should see some performance boost.
Todd, the key is to not let VFP eat memory for buffers beyond the physical RAM available on the system less the overhead for other processes that need to remain resident, OS kernel tasks, and cache and buffers used to service other things. A good rule of thumb for starting the tuning process on a lightly loaded NT system is between 1/3rd and 1/2 the smaller of the available physical RAM on the system or the available cacheable physical RAM on the system (some processor/chipset combinations will permit you to put more RAM on the motherboard than can be processed in the L2 cache, eg the 430TX, and 440-family chipsets with the Slot1 family processors (Pentium II, Pentium III, Celeron)).
VFP does not differentiate betwen physical and available virtual memory when computing its base upper limit, so the more you overallocate swap space, the worse untuned VFP will perform under most circumstances. The worst case I've seen was a system on a 430TX motherboard with 256MB of RAM (the processor/chipset combination can only cache addresses in the first 64MB) and a 700MB swap file...VFP thrashed out as soon as the first large join occurred.