De nombreux langages informatiques scientifiques distinguent le temps absolu (horloge murale) et le temps CPU (cycles du processeur). Par exemple, dans Matlab nous avons:Mesure du temps CPU écoulé dans Julia
>> tic; pause(1); toc
Elapsed time is 1.009068 seconds.
>> start = cputime; pause(1); elapsed = cputime - start
elapsed =
0
et Mathematica nous avons:
>>In[1]:= AbsoluteTiming[Pause[1]]
>>Out[1]= {1.0010572, Null}
>>In[2]:= Timing[Pause[1]]
>>Out[2]= {0., Null}
Cette distinction est utile lorsque l'analyse comparative exécution de code sur les serveurs de calcul, où il peut y avoir une forte variance dans le temps absolu résultats en fonction de ce que les autres processus sont en cours d'exécution.
La bibliothèque standard Julia prend en charge le calendrier des expressions par tic()
, toc()
, @time
et quelques autres fonctions/macros toutes basées sur time_ns()
, une fonction qui mesure le temps absolu.
>>julia> @time sleep(1)
elapsed time: 1.017056895 seconds (135788 bytes allocated)
Ma question: Existe-t-il un moyen simple d'obtenir le temps CPU écoulé pour une évaluation d'expression dans Julia?
(Note:. Faire quelques recherches, il semble que le calendrier Julia est basée sur la fonction uv_hrtime()
de libuv Il me semble que l'utilisation uv_getrusage
de la même bibliothèque pourrait donner un moyen d'accéder temps CPU à Julia, mais Est-ce que quelqu'un a essayé d'utiliser quelque chose comme ça?)
Ceci est une excellente suggestion. Veuillez envoyer un problème ou envoyer un mail à la liste de diffusion (ou envoyer une demande de tirage si quelque chose fonctionne!) –