Manchmal, während ich den Code optimiere, ist es erforderlich, bestimmte Teile des Codes zeitlich zu bestimmen. Ich verwende das Folgende seit Jahren, habe mich aber gefragt, ob es einen einfacheren / besseren Weg gibt, dies zu tun?
call system_clock(count_rate=clock_rate) !Find the time rate
call system_clock(count=clock_start) !Start Timer
call do_something_subroutine !This is what gets timed
call system_clock(count=clock_stop) ! Stop Timer
e_time = real(clock_stop-clock_start)/real(clock_rate)
quelle
-pg
,-g
ist für Debug-Symbole (auch interessant, aber nicht erforderlich)Wie von icurays1 erwähnt, ist die Profilerstellung am besten. Sie können das oben genannte auch etwas vereinfachen ...
wo das utils Modul enthält ...
Wenn Sie viele solcher Abschnitte haben, übergeben Sie eine Zeichenfolge, z. B. "section_id" in toc, damit die ID / der Name zusammen mit dem Timing gedruckt wird.
quelle
t1
undt2
global, sondern vorbeit1
als Parameter an beide Funktionen zu übergeben, um mehrere Timer zu ermöglichen. Sie können auch einfach die Uhrzeit zurückgeben und nichts drucken.