Я написал трудоемкую программу на Python. По сути, программа на python проводит большую часть своего времени в подпрограмме на фортране, обернутой f2py
, а подпрограмма на фортране большую часть своего времени проводит в lapack. Однако, когда я запустил эту программу на своей рабочей станции, я обнаружил, что 80% времени процессора приходится на время пользователя, а 20% времени процессора приходится на системное время.
В другом вопросе SO я прочитал:
Разница заключается в том, тратится ли время в пространстве пользователя или в пространстве ядра. Пользовательское процессорное время — это время, затрачиваемое процессором на выполнение кода вашей программы (или кода в библиотеках); системное процессорное время — это время, затрачиваемое на выполнение кода в ядре операционной системы от имени вашей программы.
Поэтому, если это правда, я предполагаю, что все время процессора должно быть посвящено пользовательскому времени. Означает ли 20% процентов системного времени, что мне нужно профилировать программу?
ИЗМЕНИТЬ:
Дополнительная информация: я не могу воспроизвести 20% системного процессорного времени. В другом прогоне команда time
дает:
- реальный 5м14.804с
- пользователь 78m6.233s
- система 4m53.896s