Иногда при оптимизации кода требуется время для определенных частей кода, я годами использовал следующее, но мне было интересно, есть ли более простой / лучший способ сделать это?
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)
optimization
fortran
profiling
Изопикнальное колебание
источник
источник
-pg
,-g
для символов отладки (также интересно, но не обязательно)Как упомянуто icurays1, профилирование лучше. Вы также можете немного упростить вышесказанное ...
где модуль utils содержит ...
Если у вас много таких разделов, то передайте строку, например, «section_id» в toc, чтобы она печатала идентификатор / имя вместе со временем.
источник
t1
иt2
глобальный, а скорее передаватьt1
в качестве параметра обеим функциям, чтобы учесть несколько таймеров. Вы также можете просто вернуть время, ничего не печатая.