Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Faster execution
Message
From
03/12/2005 18:01:28
Cetin Basoz
Engineerica Inc.
Izmir, Turkey
 
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 9
OS:
Windows XP SP2
Network:
Windows 2000 Server
Database:
Visual FoxPro
Miscellaneous
Thread ID:
01074569
Message ID:
01074652
Views:
23
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
Çetin Basöz

The way to Go
Flutter - For mobile, web and desktop.
World's most advanced open source relational database.
.Net for foxheads - Blog (main)
FoxSharp - Blog (mirror)
Welcome to FoxyClasses

LinqPad - C#,VB,F#,SQL,eSQL ... scratchpad
Previous
Reply
Map
View

Click here to load this message in the networking platform