Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Not enough memory for file map & SYS(3050)
Message
From
06/11/2007 03:22:01
 
 
To
05/11/2007 22:31:25
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Miscellaneous
Thread ID:
01266838
Message ID:
01266901
Views:
21
>>>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
Map
View

Click here to load this message in the networking platform