python - 如何让 PyCharm 分析器只显示我的源代码的时间,而不是任何库?
问题描述
当我运行 PyCharm 分析器时(这里有一个快速介绍视频 - https://www.youtube.com/watch?v=QSueV8MYtlw),我得到了数千行,如 hasattr 或 npyio.py (它是从哪里来的,我知道甚至不使用 numpy) 这根本无法帮助我理解发生了什么。
如何让 PyCharm 分析器只显示我的源代码的时间,而不是任何库或系统调用?
换句话说,系统调用和库所花费的时间可以分配给调用它们的函数吗?
换句话说(第二版),我想要的只是我的python 代码每行旁边的毫秒数,而不是其他任何东西。
解决方案
我创建了一个代码来提供一个示例,并希望提供一个可以接受的答案:
import datetime as dt
class something:
def something_else(self):
other_list = range(100000)
for num in other_list:
datetimeobj = dt.datetime.fromtimestamp(num)
print(num)
print(datetimeobj)
def something_different(self):
other_list = range(100000)
for num in other_list:
datetimeobj = dt.datetime.fromtimestamp(num)
print(num)
print(datetimeobj)
st = something()
st.something_else()
st.something_different()
代码生成了下图,我根据名称对其进行了排序。(在我的情况下这是可能的,因为所有内置方法都以“<”为前缀。这样做之后,我现在可以看到 main 占用了总时间的 100%(列:时间(毫秒))。something_else 占用了 50.8% time 和 something_different 花费了 49.2 % 的时间(总计也达到 100 %)(列:时间(毫秒))在两种本土方法中花费的时间分别为 2.0 %(列:自己的时间(毫秒) )) -> 这意味着来自 something_else 的底层调用占 48.8 %,而 something_different 占 47.2 %,我编写的部分占总时间的 4.0 %。其余 96.0 % 的代码来自内置方法,我打电话。
你的问题是:
如何让 PyCharm 分析器只显示我的源代码的时间,而不是任何库或系统调用?-> 这就是您在列中看到的:“Own Time (ms)”-> 2.0 %(在特定方法中花费的时间。)
换句话说,系统调用和库所花费的时间可以分配给调用它们的函数吗?-> 这就是您在列中看到的:“时间(毫秒)”(花费的时间包括底层方法。)
减去这两列,您只需要花费在底层方法上的时间。
不幸的是,我无法在分析器中找到过滤方法,但可以通过复制列表来导出列表,这样您就可以创建其他东西来进行过滤,例如“<built_in”以清理数据。
推荐阅读
- php - 我可以将一个 wordpress 站点的所有帖子显示到另一个 wordpress 站点,并将单独的域作为所有帖子的前缀吗?
- selenium - Headless chrome 不支持使用 selenium 网络驱动程序查看 pdf?
- php - Auth::user() 在 ServiceProvider 中返回 null
- c++ - C++接口的工厂函数实现
- java - com.sun.ejb.containers.BaseContainer.mapLocal3xException (BaseContainer.java:2342) 处的 javax.ejb.EJBTransactionRolledbackException
- c# - 使用 Enable Just My Code = false 进行调试显示大量异常,如何查找原因?
- javascript - SortBy 没有正确排序?
- python - Python - 列表追加变慢?
- javascript - 循环遍历不同数组的元素
- r - R - 在数据帧上运行函数时出现意外输出