python - 使用 spyder 进行 Python 分析:成分的时间不等于函数的总时间
问题描述
我正在使用 Spyder IDE 分析我的 python 代码。
正如您在下面的屏幕截图中看到的那样, _get_loglik_seq
函数执行需要 1.20 分钟 = 80 秒。但是,构成此功能的各种功能/过程的时间如下:solve_EV
= 29.78c_get_gamma
秒,= 10.12 秒,norm
= 6.57 秒,outer
= 4.70 秒,<method dot ...
:2.17 秒,所有其他:<1 秒。
如果将这些时间相加,结果将是大约 54 秒,远小于 80 秒。
这怎么可能?是探查器错误还是我错过了什么?谁能推荐一个用于 Python 代码分析的好工具?(我正在使用 Mac OS)
谢谢,米哈伊尔
解决方案
原因如下:
总时间 = 函数的执行时间,包括所有子函数。
本地时间 = 没有子函数的函数的执行时间。
因此,如果一个函数p
调用子函数s1
, s2
, s3
, 那么:
ToTtime(p)=ToTtime(s1)+ToTtime(s2)+ToTtime(s3)+Localtime(p),
大致成立。
推荐阅读
- c++ - 双向链表三元组
- java - Java:在异步回调中使用 this.classVariable 和 classVariable 在内存管理方面有什么区别吗?
- sql-server - 创建 REST 数据源以访问 oracle apex 应用程序的 sql server 数据库?
- python - Python selenium 查找元素问题
- javascript - 反应日期选择器抛出无效的时间值
- r - Leafpop Popupgraph 不适用于 Plumber - R
- c# - 在c#中使用bigquery API时如何获取sql查询的列名
- xcode - 如何将对象移动到 ARView 中另一个移动对象的位置?
- java - HackerRank:新年混沌替代答案 Java
- string - 用于字符串字母比较的“哈希码”