Information générale
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
>>>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
Précédent
Répondre
Voir le fil de ce thread
Voir le fil de ce thread à partir de ce message seulement
Voir tous les messages de ce thread
Voir tous les messages de ce thread à partir de ce message seulement