Python 为什么我的程序使用系统cpu时间?

Python 为什么我的程序使用系统cpu时间?,python,fortran,profiling,cpu-usage,lapack,Python,Fortran,Profiling,Cpu Usage,Lapack,我编写了一个耗时的python程序。基本上,python程序的大部分时间都花在由f2py包装的fortran例程中,而fortran例程的大部分时间都花在lapack中。然而,当我在工作站上运行这个程序时,我发现80%的cpu时间是用户时间,20%的cpu时间是系统时间 在另一个问题中,我读到: 区别在于时间是花在用户空间还是内核空间。用户CPU时间是在运行程序代码(或库中代码)的处理器上花费的时间;system CPU time是代表程序在操作系统内核中运行代码所花费的时间 因此,如果这是真的

我编写了一个耗时的python程序。基本上,python程序的大部分时间都花在由
f2py
包装的fortran例程中,而fortran例程的大部分时间都花在lapack中。然而,当我在工作站上运行这个程序时,我发现80%的cpu时间是用户时间,20%的cpu时间是系统时间

在另一个问题中,我读到:

区别在于时间是花在用户空间还是内核空间。用户CPU时间是在运行程序代码(或库中代码)的处理器上花费的时间;system CPU time是代表程序在操作系统内核中运行代码所花费的时间

因此,如果这是真的,我假设所有的cpu时间都应该用于用户时间。20%的系统时间是否表示我需要评测程序

编辑:

更多信息:我无法重现20%的系统cpu时间。在另一次运行中,
time
命令给出:

  • real 5m14.804s
  • 用户78m6.233s
  • 系统4m53.896s

操作系统在任何给定时刻都在不断切换正在运行的内容。您的程序将运行一段时间,但最终会出现一个中断,系统将切换到其他程序,或者它可能只是决定运行其他程序一两秒钟,然后切换回。很难强制操作系统不执行此行为。这是操作系统工作的一部分;保持所有方面的运行。

您能给出一些运行在用户/内核空间中花费的实际时间吗?虽然百分比很有用,但只有在启动时间可以忽略不计的长时间运行时,百分比才更有意义。请显示您的代码。@AlexanderVogt,您需要程序的哪一部分?python部分,fortran部分?代码太长,无法粘贴到此处。