Mark,
Since release of VFP7 mdot became more important for performance besides code clarity and explicitly specifying a variables 'alias' (VFP6 and previous handled it better). Variables are kept in table called NTI and if a table is open in current area first VFP checks the table if it's a fieldname. If not then NTI. With single calls with or w/o difference is negligible (but code is still vulnerable to break w/o mdot-that's another thing). With a loop however the difference gets very striking. For example a routine might end in 1-2secs despite over 20secs just because faster one of uses mdot. I also saw an explanation about this lately in Calvin Hsia's BLOG (I don't know the address).
If you want more details and tests search for threads (be warned all of them were long) about it that started around release of VFP7.
Cetin
>Cetin,
>I don't understand why the MDOT notation is important for purposes of optimization. Do you happen to know how VFP goes about resolving symbolic references at run time (for example, how it goes about traversing its symbol table, and where it looks first in order to resolve a symbol reference)? Thanks very much.
>
>>>I have an app that does thousands of calculations. I would like to see it run faster. Does anyone have any speedup tips to pass along to the VFP community?
>>>
>>>And . . . Does a class execute any quicker than a prg?
>>
>>As Vladimir said DLL, FLL, indepandant C,C# exes, winAPI... might be needed.
>>Use m. (MDOT) - most important optimization maybe. Failure to do so will be punished to the possible extent:)
>>If parts of calculations could be done independantly then spawn extra processes doing calculation in background.
>>If there are out-of-the-box applications that can do it, utilize them (ie: excel is good at doing some calculations).
>>Where possible use local copies of tables in exclusive mode.
>>Someties multiple SQL is faster than a single one (or xBase approaches).
>>Store ... is faster than =, scan..endscan is faster than do while skip..enddo etc series of optimizations.
>>Arrays are generally faster than cursor processing...(but there are places they might be much more slower). If you need string parsing, sometimes the fastest approach is to create a combo or listbox object-if not using FLL,DLL.
>>...
>>
>>Does a class execute any quicker? Hmm maybe slower but generally difference is not calculatable within a large process. Debatable.
>>PS: Some items here might lead to long running discussions:)
>>Cetin