General information
Category:
Databases,Tables, Views, Indexing and SQL syntax
>>>One client was getting the "Not enough memory for file map" error on some machines and I confirmed that it can be resolved by using SYS(3050). However, is there a danger of setting the buffers too low? I had seen recommendations for 64*1024*1024 and 512*1024*1024 but the "512" was too high and I still got the error. Can there be any adverse effects by using SYS(3050)?
>>
>>Definately yes -
>>if set too low (depending on physical RAM - danger of *lowered* perf, especially when indexing or using SQL)
>>if set too high (depending on physical RAM - danger of *lowered* perf)
>>if set too high (depending on physical+"swapfile" RAM - danger of runtime errors)
>>
>>In very RAM heavy machines with comparably low swap file settings the default behaviour might evoke runtime errors as well - more in earlier versions of vfp.
>
>We've also been recently plagued by the same error and I didn't know about this function.
>
>SYS(3050,1) ---> 721,420,288
>SYS(3050,2) ---> 180,355,072
>
>We get this error when running the application as an EXE. When it runs directly in VFP 8 there is no problem.
>Can you recommend alternate settings for the EXE version?
I'ld say as a default stay below 512*2**20, unless you know exactly why you up it - it was one of the "magic" numbers in previous versions. If there is NOT a fixed stable environment set of machines i usually get the machines physical and total RAM size and set dynamically depending on those values. For xBase style code, small is enough: ~128*2**20 even on large machines.
Heavy SQL usage, packing, indexing and so on can get a real boost if done with more memory: here I try to stay below 1/4 of total and 2/5 of physical RAM, which is easy for me as our smallest machines have 3 GB. For deployment exe's on very different set of machines perhaps drop even further down: min(1/5[total], 1/3[physical]).
You can easily test the different settings by emulating "weaker" machines with castration settings in boot.ini: /maxmem=256 <g>. See also Christoph's response: If the swap file is very small or nonexistant, you might show a msgBox explaining that this "performance enhancment attempt" may backfire and/or get nearly nor speed improvement.
HTH
thomas
Previous
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