范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Pycallgraph可视化绘制Python的函数调用关系和耗时图

  1.说明:
  =====
  1.1 使用pycallgraph,追踪Python函数内部调用关系,可视化自动画图。
  1.2 不但可以清晰地看到源代码里面的调用逻辑关系,还可以观察其每个模块的运行时间。
  1.3 是一个很方便的小工具,非常适合初学者学习他人的开源模块。
  2 准备:
  =====
  2.1 官网:https://github.com/gak/pycallgraph/ https://pycallgraph.readthedocs.io/en/develop/
  2.2 本机环境:
  华为笔记本电脑、深度deepin-linux操作系统、python3.8和微软vscode编辑器。
  2.3 安装:pip install pycallgraph pip install graphviz  #附带安装 #本机安装 sudo pip3.8 install graphviz  #附带安装 sudo pip3.8 install pycallgraph
  2.4 建立软连接:本机sudo ln -s /usr/local/python3.8/bin/pycallgraph /usr/bin/pycallgraph
  3 外部脚本代码分析举例:
  ===============
  3.1 heart.py代码:from mpl_toolkits.mplot3d import Axes3D from matplotlib import cm from matplotlib.ticker import LinearLocator, FormatStrFormatter import matplotlib.pyplot as plt import numpy as np import matplotlib  def heart_3d(x,y,z):     return (x**2+(9/4)*y**2+z**2-1)**3-x**2*z**3-(9/80)*y**2*z**3  def plot_implicit(fn, bbox=(-1.5, 1.5)):     xmin, xmax, ymin, ymax, zmin, zmax = bbox*3     fig = plt.figure()     ax = fig.add_subplot(111, projection="3d")     A = np.linspace(xmin, xmax, 100)      B = np.linspace(xmin, xmax, 40)      A1, A2 = np.meshgrid(A, A)       for z in B:          X, Y = A1, A2         Z = fn(X, Y, z)         cset = ax.contour(X, Y, Z+z, [z], zdir="z", colors=("r",))      for y in B:         X, Z = A1, A2         Y = fn(X, y, Z)         cset = ax.contour(X, Y+y, Z, [y], zdir="y", colors=("red",))      for x in B:          Y, Z = A1, A2         X = fn(x, Y, Z)         cset = ax.contour(X+x, Y, Z, [x], zdir="x",colors=("red",))          ax.set_zlim3d(zmin, zmax)         ax.set_xlim3d(xmin, xmax)         ax.set_ylim3d(ymin, ymax)          plt.axis("off")     plt.show()  if __name__ == "__main__":     plot_implicit(heart_3d)
  3.2 图:
  3.3 操作流程:
  在脚本代码heart.py所在的目录下,打开终端,输入:#对heart.py脚本的函数进行分析 pycallgraph graphviz -- heart.py #自动生成png图
  操作示意图:
  3.4 生成的函数调用关系和耗时图:
  4 内部函数关系与耗时举例分析:
  ========================
  4.1 代码:# -*- coding: utf-8 -*- from pycallgraph import PyCallGraph,Config,GlobbingFilter from pycallgraph.output import GraphvizOutput  #需要观察的类和函数 class Banana:     def eat(self):         pass   class Person:     def __init__(self):         self.no_bananas()     def no_bananas(self):         self.bananas = []     def add_banana(self, banana):         self.bananas.append(banana)     def eat_bananas(self):         [banana.eat() for banana in self.bananas]         self.no_bananas()   #启动graphviz和PyCallGraph可视化作图的主函数 def main():     graphviz = GraphvizOutput()     #自动输出图片,保存地址和文件名,格式是png     graphviz.output_file = "/home/xgj/Desktop/pycallgraph/basic2.png"     config = Config()     config.max_depth = 5  # 控制最大追踪深度       with PyCallGraph(output=graphviz, config=config):         person = Person()         for a in range(10):             person.add_banana(Banana())         person.eat_bananas()   if __name__ == "__main__":     main()
  4.2 图:
  ===自己整理并分享出来===
  喜欢的就点赞、评论、转发、关注和收藏。

孩子总是很固执?需要培养孩子的转向思维有个妈妈曾经说过这样一件事学校举行运动会,要求所有孩子统一着装,结果第2天早晨起床的时候,发现外面的天气不好,决定给自家的儿子加一下衣服。可是没想到儿子十分认真的拒绝了我的请求,还接纳自己的普通,别让优秀成为一种防御对于优秀,可能我们每个人都心存期待,但对于某些人来讲,对优秀的追逐,就像穿上了红舞鞋,没有办法让自己停下来。在他的世界里,不管多么大的成就都不能让自己快乐,因为他的内心有个洞,只要孩子总爱抱怨,其实是在释放一种信号生活中有这样一类人,遇事喜欢抱怨。下雨了抱怨天气,工作量大抱怨老板抱怨孩子不够聪明听话,抱怨伴侣不够勤快体贴看别人好像永远都那么幸福快乐,看自己的生活哪哪都不顺眼心理学有一个理论叫男女交往时,保持怎样的距离才是最好的?不管是情侣,还是普通朋友,异性之间的交往距离都是很难拿捏的。情侣如果天天腻歪在一起,时间长了也会厌烦如果距离远,感情也会变淡。爱情不是拴住两个人的绳索,而是彼此心灵停靠的港湾,也是人们行为背后的驱动力法则心理学中,在无对抗的条件下,用含蓄抽象诱导的间接方法对人们的心理和行为产生影响。从而使人们按照一定的方式去行动或接受一定的意见,对人的行为反式,思考方向和思维方式有一定的指导作用,爱情中,为什么父母越反对,反而让两个人越相爱?莎士比亚的名剧罗密欧与朱丽叶描写了罗密欧与朱丽叶的爱情悲剧。他们相爱很深,但由于两家是世仇,感情得不到家里其它成员的认可,双方的家长百般阻挠。然而,他们的感情并没有因为家长的干涉而36个问题,45分钟,是如何让两个陌生人相爱的?七夕加上附带一个牛郎织女的爱情故事,让七夕节具有一个传奇的神话色彩,被越来越多的人追捧。这样浪漫的节日很容易激起单身者对爱情的向往。然而,有项统计却显示,情人节当天的分手率是平常的武器效应警惕你身边出现的软武器武器效应是指武器能增强侵犯行为,或暗示行为发生的现象。例如,人在愤怒的时候,旁边若有把刀,烟灰缸玻璃瓶石头等硬武器,就容易做出攻击他人的行为。由于原有的挫折侵犯理论过度估计了挫折与巨婴父母对孩子溺爱的产物因为父母给太多钱,而埋怨父母,这样荒唐的事件你们听说过吗?前不久,华裔男子QiaochuYuan就因为在社交媒体上公开吐槽自己的父母无节制地送钱给自己,让他压力很大,从而引起了社会这位46岁的体操运动员,最后一跳激励了无数人奥运会正在如火如荼地进行,今天来介绍一位即使整天按照三围体重五官给女人打分的男人,面对这个人,也得由衷地道一声真正伟大的女性。她叫丘索维金娜,女子体操运动员,今年46岁,这是她第8瓦拉赫效应懂得经营自己的长处,才能够获得成功每个人都有自己的强项和弱项,智能的发展是不均衡的,不能因为某一个或某些方面的不足就彻底否定自己。一旦找到了能力发挥的最佳点,且付出汗水和努力,很可能会有一鸣惊人的作为。这一现象我们
李小璐离婚得天独厚的无所谓,一穷二白的都在拼作者八段锦,自己过好了,孩子才能教育好。想了解如何调整父母的情绪健康和亲子关系,关注我就对啦11月14日,贾乃亮和李小璐工作室联合发布声明,宣布双方已离婚。早就离婚登记了,但一直未Papi酱旗下知名博主宇芽被家暴家暴男是怎样造就的?作者自己过好了,孩子才能教育好。父母想了解如何调整情绪和亲子关系,关注我就对啦11月25日是联合国制定的消除对妇女的暴力行为国际日,也被称为反家暴日,papi酱旗下扮妆博主宇芽选择难自律网络成瘾每个成瘾者,都有一个说不出口的缺憾作者八段锦,自己过好了,孩子才能教育好。父母想了解如何调整情绪和亲子关系,关注我就对啦小男人小时候睡觉的时候必要摸一条浅绿色的枕巾,我只好白天赶紧洗了晚上再给他用。我同事的孩子有点耳朵再造修复小耳畸形是什么原因造成的?据统计,新生儿耳形态畸形发病率为43。46,如果早期不进行治疗,可能畸形将伴随一生,随着年龄的增长,很多孩子会出现自卑心理。那么小儿耳朵畸形是因为什么造成的呢?其实大多数妈妈在怀孕控制型父母毁了孩子的一生重新追电视剧以家人之名,印象最深的还是齐明月和她的父母,她的母亲是一个特别强势的人,而父亲则是万事不管的人。这无形中让母亲更加的强势,控制欲更强。全剧里面齐明月总是一副乖乖女的形象小时候父母的哪句话伤你最深?今天早上跟儿子准备出门上学的时候,儿子不慌不忙手插着都晃晃荡荡的往外走,而书包都没有拎。我看见儿子的这一出火就上来了,不经过大脑的说了一句看你那出铁随你爹!在话音刚落的时候我才反应是什么样粗心的父母能把三岁的孩子忘在车里三小时?心疼孩子小孩中秋节被父母锁车里一天身亡深圳一对夫妻因为疏忽把三岁多的女儿落在车里,三个小时后才找到。据了解女童被困在一辆红色的小轿车里近3个小时,当时天气炎热,小轿车正好停在太阳照射的地方有趣的经济学前沿父母对孩子能力的信仰绝大部分有了孩子的家庭都会有一种焦虑,那就是关于自己孩子的学习。当孩子还很小的时候,父母就给他们报各种兴趣班。很多小朋友从幼儿园开始(甚至更早)就被家长安排着学习英语奥数阅读钢琴绘案例分析唇裂术后唇珠缺失的小伙,终于拥有完好嘴唇术前情况患者今年20出头,先天性双侧唇裂,自幼做了唇裂修复,随着唇鼻部发育出现了红唇畸形。红唇组织分布不均,唇珠缺失唇红缘断裂,唇峰上提不对称,鼻槛底到红唇瘢痕明显。两边肌肉力量均小耳畸形图片案例修复后的耳朵会不会不对称?在小耳畸形的分类中,有一种类型叫耳垂型小耳畸形,主要表现为耳廓大部分结构无法分辨,只有一个明显的耳垂。大多数耳垂型小耳畸形患者的残耳耳垂位置都与健侧基本等高,但是有少数患者的残耳耳哺乳妈妈缺奶怎么办?四大方法让奶水充盈众所周知,母乳喂养是最佳喂养方式,妈妈亲自用乳汁喂养宝宝,既是对宝宝的健康最大守护,又能增进情感的链接。但是,现代社会生育年龄普遍推迟,近年国家又颁布了二胎三胎政策,很多妈妈都是着