...
This script print data sorted by tottime
column ( In tottime
column is total time spent in the given function (and excluding time made in calls to sub-functions)). These are the first few lines of the results :
Code Block |
---|
Wed Nov 30 09:40:33 2022 test.prof 19379745 function calls (19376063 primitive calls) in 164.514 seconds Ordered by: internal time ncalls tottime percall cumtime percall filename:lineno(function) 3 81.304 27.101 81.304 27.101 {imas_3_37_0_ual_4_11_0._ual_lowlevel.ual_open_pulse} 2891220 42.947 0.000 52.709 0.000 {imas_3_37_0_ual_4_11_0._ual_lowlevel.ual_read_data_array} 2497358 16.127 0.000 16.127 0.000 {imas_3_37_0_ual_4_11_0._ual_lowlevel.ual_read_data_scalar} 2899948 2.784 0.000 2.784 0.000 {built-in method numpy.zeros} 815194 2.391 0.000 2.391 0.000 {method 'reduce' of 'numpy.ufunc' objects} 427578 1.225 0.000 2.589 0.000 fromnumeric.py:38(_wrapit) 815196 1.015 0.000 7.988 0.000 {built-in method numpy.core._multiarray_umath.implement_array_function} 387616 0.876 0.000 2.809 0.000 fromnumeric.py:69(_wrapreduction) 427578 0.848 0.000 0.848 0.000 {method 'reshape' of 'numpy.ndarray' objects} 427578 0.685 0.000 3.358 0.000 fromnumeric.py:51(_wrapfunc) 387785 0.684 0.000 0.684 0.000 {method 'items' of 'dict' objects} |
...
Code Block |
---|
Line # Hits Time Per Hit % Time Line Contents 895 1 62545203.7 62545203.7 26.9 alenv = ALEnv(user_temp=user_tmp) 917 22 49496025.7 2249819.4 21.3 ids_bundle_input[ids_struct] = eval('DBentry.idsin.get("'+ids_struct+'")') 922 1 83745046.9 83745046.9 36.0 tmpdict = bundle_copy(ids_bundle_input) 956 2 4665617.1 2332808.6 2.0 ids_bundle_input[elem] = DBentry.idsin.get_slice(elem, tstart, 3) 966 1 6353190.5 6353190.5 2.7 ids_bundle_work = bundle_copy(ids_bundle_input) 967 1 7884627.8 7884627.8 3.4 ids_bundle_updated = bundle_copy(ids_bundle_input) 1022 3 14539266.0 4846422.0 6.2 ids_bundle_prev[item] = bundle_copy(ids_bundle_work,imas_control.get_ids_sublist_updates(item)) |
7. Candidates for bottlenecks
From cProfile we can see, that 85% execution time jintrac_imas_driver spend on imas functions.