Terkadang saat mengoptimalkan kode diperlukan untuk menentukan waktu bagian tertentu dari kode, saya telah menggunakan yang berikut selama bertahun-tahun tetapi bertanya-tanya apakah ada cara yang lebih sederhana / lebih baik untuk melakukannya?
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
Osilasi Isopycnal
sumber
sumber
-pg
,-g
untuk simbol debug (juga menarik, tetapi tidak diperlukan)Seperti disebutkan oleh profil icurays1 adalah yang terbaik. Anda juga dapat sedikit menyederhanakan hal di atas ...
di mana modul utils berisi ...
Jika Anda memiliki banyak bagian seperti itu maka berikan string, misalnya, "section_id" di toc sehingga ia mencetak id / nama bersama dengan waktu.
sumber
t1
dant2
global, melainkan lewatt1
sebagai parameter untuk kedua fungsi, untuk memungkinkan beberapa timer. Anda juga bisa mengembalikan waktu, bukan mencetak apa pun.