Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
VFP vs Other languages (Python/Ruby)
Message
From
22/05/2011 07:36:02
 
 
To
21/05/2011 19:31:23
General information
Forum:
Visual FoxPro
Category:
Other
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows Server 2003
Network:
Windows 2003 Server
Database:
Visual FoxPro
Application:
Desktop
Miscellaneous
Thread ID:
01511347
Message ID:
01511388
Views:
97
>>>>>>Hi All,
>>>>>>
>>>>>>Not really a Fox question specifically but thought someone here might have an idea on this.
>>>>>>
>>>>>>I am wondering just how code execution speed of VFP compares to other languages such as Python and Ruby? Take for example the following 10million times loop:
>>>>>>
>>>>>>nStart = SECONDS()
>>>>>>a = 0
>>>>>>b = RAND()
>>>>>>FOR x = 1 TO 10000000
>>>>>>	a = a + b
>>>>>>NEXT
>>>>>>nStop = SECONDS()
>>>>>>? nStop-nStart, X, a
>>>>>>
>>>>>>
>>>>>>This runs on my machine in VFP in 2.4secs. Any idea how fast it would run in either of the alternative languages?
>>>>>>
>>>>>>Thanks,
>>>>>
>>>>>I'm not a process timer guru, but as a brain exercise decided to try your code in VFP 9 and what I think is a similar process in C# on my box -
>>>>>
>>>>>i7 cpu 1.73 ghz
>>>>>6 gb ram
>>>>>Win 7 64 bit
>>>>>
>>>>>Your code in my vfp 9 sp 2
>>>>>
>>>>>6.9 to 7.9 seconds on ten tests
>>>>>using 100,000,000 in the loop - 79.889 seconds
>>>>>
>>>>>This is my C# test :
>>>>>
>>>>>
>>>>>
>>>>>        static void Main(string[] args)
>>>>>        {
>>>>>            Random random = new Random();
>>>>>            int a = 0;
>>>>>            int b = random.Next();
>>>>>            Stopwatch stopwatch = new Stopwatch();
>>>>>            stopwatch.Start();
>>>>>            for (int i = 0; i < 10000000; i++)
>>>>>            {
>>>>>                a += b;
>>>>>            }
>>>>>
>>>>>            stopwatch.Stop();
>>>>>
>>>>>            TimeSpan elapsedTime = stopwatch.Elapsed;
>>>>>            Console.WriteLine(elapsedTime.ToString());
>>>>>            Console.Read();
>>>>>        }
>>>>>
>>>>>
>>>>>This does the 10,000,000 loop in .06 seconds.
>>>>>
>>>>>It appears your VFP code only generates one random number, so I tried to emulate that. If i move the generation of the random number inside the loop
>>>>>
>>>>>a += random.New();
>>>>>
>>>>>the whole process takes between .44 and .48 seconds.
>>>>>
>>>>>Since I know as a matter of catechism that nothing is faster than the Fox, I am sure my methodology must be flawed, but I find it interesting, nonethless and would welcome explanation.
>>>>
>>>>IAC I think you're lucky that a didn't overflow {g}
>>>
>>>I'd also be kind of curious as to why my VFP testing was getting 7+ second numbers where Nick got less than 3 ? ( see my specs )
>>>
>>>Nick, what are you running?
>>
>>
>>Charles,
>>
>>Running on an 18 month old workstation but a reasonably fast one:
>>Win2003 Server - reasonably clean install
>>CPU: AMD Phenom II X6 - 2.8Ghz
>>RAM: 2 x 4Gb DDR3 1600Mhz
>>
>>Nick
>
>I wonder if there is a performance penalty in VFP running on a 64 bit OS, since my box took about 3 times what yours did in VFP.
>
>In any case, I find the C# results interesting. Not sure if they can be extrapolated to anything meaningful as but a difference in the random function doesn't seem to account for it as when there was only addition going on inside the loop C# outperformed VFP even more dramatically. I was frankly surprised ( but I guess glad, since I actually do all my development in .net now <s> )
>
>I'd be interested to see other comparisons. I know string handling was touted in VFP as being faster than anything anyone had seen but I'm going to put together some tests comparing that in VFP and C# as well.


This has been done to death already - we know C# outperforms VFP in string processing. There are already articles with all the tests out there on the internet. No need to beat that into the ground. A more interesting test imo would be data performance - VFP database vs SQL. And VFP will still have a unique value no matter how much you try to prove .NET is so superior :)
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform