RE: VC.NET 'Optimization'
"Grills, Jeff" <[email protected]> Tue, 12 Apr 2005 14:35:40 -0700
| Newsgroups | gmane.games.devel.windows |
|---|---|
| Message-ID | <F20CD10A407C9B4EA065A7F9CA3D6F9103420418@mail-sd2.ad.soe.sony.com> |
Perhaps I missed something earlier on since I haven't been following this thread that closely, but I don't see your point. Looking at the two code statements quoted: timer.Restart(); printf( "time=%f, result=%d\n", timer.GetElapsed(), fibonacci(42)); The compiler could call the functions in this order: timer.Restart() timer.GetElapsed() fibonacci() printf() Or it could call them in this order: timer.Restart() fibonacci() timer.GetElapsed() printf() Only the latter one would have the timer include the fibonacci() call time, because it's made between the timer.Restart() and timer.GetElapsed(). To be safe, as you said, the fibonacci() call would have to be made in a statement after the timer.Restart() but before the printf() containing the timer.GetElapsed(); j -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Lewin, Gareth Sent: Tuesday, April 12, 2005 4:12 PM To: [email protected] Subject: RE: [GD-Windows] VC.NET 'Optimization' Again, the order doesn't matter, the fib function has no side effects. His goal in this specific case is to measure the speed of his fib function, so contextually changing the order the params are passed will work. If the order mattered, then fib would have been called outside the printf scope. -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Grills, Jeff Sent: Tuesday, April 12, 2005 12:17 PM To: [email protected] Subject: RE: [GD-Windows] VC.NET 'Optimization' Maybe on some compilers, but it's not guaranteed. The order of argument evaluation to functions is not specified by the C++ standard - it's left up to the implementations. j -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Lewin, Gareth Sent: Tuesday, April 12, 2005 2:02 PM To: [email protected] Subject: RE: [GD-Windows] VC.NET 'Optimization' I fail to see why this worries you, the optimiser is making a (valid) assumption about your code, and generating the fastest sequence it can. As a side note, just flip the order of your params to printf, that should give you want you want. -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of yogiwp Sent: Tuesday, April 12, 2005 11:52 AM To: [email protected] Subject: Re: [GD-Windows] VC.NET 'Optimization' > ---------------------------------------------------- > timer.Restart(); > printf( "time=%f, result=%d\n", timer.GetElapsed(), fibonacci(42) > ); > ---------------------------------------------------- ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_ide95&alloc_id396&op=click _______________________________________________ Gamedevlists-windows mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows Archives: http://sourceforge.net/mailarchive/forum.php?forum_idU5