Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
VFP vs Other languages (Python/Ruby)
Message
From
21/05/2011 11:38:58
 
 
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:
01511357
Views:
127
>>>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 Hankey

Though a good deal is too strange to be believed, nothing is too strange to have happened.
- Thomas Hardy

Half the harm that is done in this world is due to people who want to feel important. They don't mean to do harm-- but the harm does not interest them. Or they do not see it, or they justify it because they are absorbed in the endless struggle to think well of themselves.

-- T. S. Eliot
Democracy is two wolves and a sheep voting on what to have for lunch.
Liberty is a well-armed sheep contesting the vote.
- Ben Franklin

Pardon him, Theodotus. He is a barbarian, and thinks that the customs of his tribe and island are the laws of nature.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform