2017-10-10 7 views
0

내가 줄리아 프로그램의 시간을 어떻게 측정 할 수 있습니까?

invQa = ChebyExp(g->1/Q(g),0,1,5) 
a1Inf = ChebyExp(g->Q(g),1,10,5) 
invQb = ChebyExp(g->1/Qd(g),0,1,5) 
Qb1Inf = ChebyExp(g->Qd(g),1,10,5) 

줄리아

에서 것들을 계산하려면 어떻게 시간을 계산 할 수 있습니까? 네 개의 일이 끝나기까지 몇 초를 기다려야합니까? 나는 tic()을 togg()와 toc()에 넣었습니까?

나는 여기에 다른 질문을 참조하려고 노력하지만, 내가 @elapsed을 시도 내가

을 이해하지 않지만,

답변

5

기본 방법입니다 결과가

@time begin 
    #code 
end 

를 사용하지 그러나주의 할 것을 never should benchmark in the global scope .

코드를 벤치 마크하는 데 도움이되는 패키지는 체크 아웃해야하는 BenchmarkTools.jl입니다.

+0

가장 쉬운 버전은 아마도 'BenchmarkTools를 사용하고 있습니다. @btime begin ...' –

+0

이렇게하면 변수를 보간하는 것을 기억해야합니다. –

+0

특히 변수가 전역 범위에있는 경우 : joy : –

2

는이 같은 것을 (나는 g 입력 매개 변수임을 짐작) 할 수있는 :

function cheby_test(g::Your_Type) 
    invQa = ChebyExp(g->1/Q(g),0,1,5) 
    a1Inf = ChebyExp(g->Q(g),1,10,5) 
    invQb = ChebyExp(g->1/Qd(g),0,1,5) 
    Qb1Inf = ChebyExp(g->Qd(g),1,10,5) 
end 

function test() 
    g::Your_Type = small_quick # 
    cheby_test(g) #= function is compiled here and 
         you like to exclude compile time from test =# 
    g = real_data() 
    @time cheby_test(g) # here you measure time for real data 
end 

test() 

난 당신이 시간 매크로에서 to get proper allocation info를 좋아하는 경우 글로벌 범위에 포함되지 @time 전화를 제안한다.