Molti linguaggi di calcolo scientifico distinguono tra tempo assoluto (orologio a muro) e tempo CPU (cicli del processore). Ad esempio, in Matlab abbiamo:Misurazione del tempo CPU trascorso in Julia
>> tic; pause(1); toc
Elapsed time is 1.009068 seconds.
>> start = cputime; pause(1); elapsed = cputime - start
elapsed =
0
in Mathematica abbiamo:
>>In[1]:= AbsoluteTiming[Pause[1]]
>>Out[1]= {1.0010572, Null}
>>In[2]:= Timing[Pause[1]]
>>Out[2]= {0., Null}
Questa distinzione è utile quando comparativa codice eseguito sui server di calcolo, dove ci può essere elevata varianza nel tempo assoluto risultati in base a quali altri processi vengono eseguiti contemporaneamente.
libreria standard La Julia fornisce il supporto per i tempi di espressioni attraverso tic()
, toc()
, @time
e poche altre funzioni/macro tutti basati su time_ns()
, una funzione che misura il tempo assoluto.
>>julia> @time sleep(1)
elapsed time: 1.017056895 seconds (135788 bytes allocated)
La mia domanda: C'è un modo semplice per ottenere il tempo di CPU trascorso per una valutazione espressione in Julia?
(Nota a margine:. Fare un po 'di scavo, sembra che i tempi Julia si basa sulla funzione uv_hrtime()
da libuv Mi sembra che l'utilizzo uv_getrusage
dalla stessa libreria potrebbe dare un modo per accedere tempo di CPU trascorso a Julia, ma Non sono esperto. Qualcuno ha provato a utilizzare qualcosa di simile?)
Questo è un grande suggestione. Si prega di inviare un problema o inviare una mail alla mailing list (o inviare una richiesta di pull se si ottiene qualcosa di funzionante!) –