Wrapped in function, but timing did not change.

function f1()
    a=2
    for i=1:1000000
        a+=log(a%2+1);
    end
    a
end
@time f1()

output:

elapsed time: 0.151813773 seconds (64080600 bytes allocated, 15.55% gc time)



On Wednesday, February 18, 2015 at 5:19:21 PM UTC-6, Stefan Karpinski wrote:
>
> 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] 
> <javascript:>> 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? 
>>>>>>
>>>>>
>>>>>
>>>
>

Reply via email to