Try wrapping the Julia code in a function and try again. The slow part is incrementing `a` not the exp.
http://julia.readthedocs.org/en/latest/manual/performance-tips/#avoid-global-variables On Wed, Feb 18, 2015 at 6:15 PM, Rohan Fernando <[email protected]> wrote: > Here is the C++ code: > > > #include <iostream> > > #include <cmath> > > > > int main(int argc, const char * argv[]) { > > > srand (time(NULL)); > > > clock_t t; > > int a=2; > > t = clock(); > > for (unsigned i=0; i<1000000; i++) { > > //a+=(log(a)); > > a+=exp(a%2); > > //a+=(rand()%2+1); > > } > > > > t = clock() - t; > > printf ("It took me %d clicks (%f seconds).\n",t,((float)t)/ > CLOCKS_PER_SEC); > > std::cout<<a<<std::endl; > > return 0; > > } > > > The output: > > > *It took me 22177 clicks (0.022177 seconds).* > > *2000001* > > Program ended with exit code: 0 > > Julia Code: > > a=2 > @time for i=1:1000000 > a+=exp(a%2); > end > > ouput: > > elapsed time: 0.136568599 seconds (47999984 bytes allocated, 18.22% gc time) > > > > Thanks. > > On Wednesday, February 18, 2015 at 4:56:40 PM UTC-6, Stefan Karpinski > wrote: >> >> How did you do the timing? >> >> On Wed, Feb 18, 2015 at 5:54 PM, Rohan Fernando <[email protected]> >> wrote: >> >>> I ran both, Julia and C++, on Mac OS X 10.10.2. >>> >>> Is that the information you asked for? >>> >>> Thanks! >>> >>> On Wednesday, February 18, 2015 at 2:32:23 PM UTC-6, Stefan Karpinski >>> wrote: >>>> >>>> Depends on how fast your system libm is – and how accurate. There's a >>>> tradeoff. >>>> >>>> On Wed, Feb 18, 2015 at 3:07 PM, Rohan Fernando <[email protected]> >>>> wrote: >>>> >>>>> >>>>> >>>>> The log and exponential functions in Julia are about five times slower >>>>> than in C++. Is this reasonable? >>>>> >>>> >>>> >>
