当我运行 PyCharm 分析器时(这里有一个快速介绍视频 - https://www.youtube.com/watch?v=QSueV8MYtlw),我得到了数千行,例如 hasattr 或 npyio.py(它来自哪里) ,我什至不使用 numpy),这根本不能帮助我理解发生了什么。
如何使 PyCharm 分析器仅显示源代码的时间,而不显示任何库或系统调用?
换句话说,系统调用和库所花费的时间可以分配给调用它们的函数吗?
换句话说(版本二),我想要的只是 my 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()
代码生成了下图,我根据名称对其进行了排序。 (在我的例子中这是可能的,因为所有内置方法都以“<". After doing this I can now see that main took 100 % of the total time (Column: Time (ms)). something_else took 50.8 % of the time and something_different took 49.2 % of the time (Totaling to 100 % as well) (Column: Time (ms)) The time spent inside each of the two home-grown methods was 2.0 % for each (Column: Own Time (ms)) ->”为前缀,这意味着来自something_else的底层调用占总时间的48.8%,来自something_ different的47.2%,而我编写的部分占总时间的4.0%。剩余 96.0 % 的代码来自我调用的内置方法。
您的问题是:
如何使 PyCharm 分析器仅显示源代码的时间,而不显示任何库或系统调用? -> 这就是您在列中看到的内容:“自己的时间 (ms)”-> 2.0 %(在特定方法内花费的时间。)
换句话说,系统调用和库所花费的时间可以分配给调用它们的函数吗? -> 这就是您在列中看到的内容:“时间(毫秒)”(所花费的时间,包括底层方法。)
减去两列,您将得到仅在底层方法上花费的时间。
不幸的是,我无法在探查器中找到过滤方法,但可以通过复制来导出列表,这样您就可以创建其他东西来进行过滤,例如”
不敢相信已经是 2024 年了,我们仍然没有像 Datagrip 那样的可靠的逐行代码分析器。 SMH