就像一个黑匣子,很多时候我们不知道python内部是怎样执行代码的,而且DEBUG的时候也没有机器指令可以查看,非常不利于代码优化。但是没关系,现在我们有Dis模块来对代码进行性能剖析。
为什么下面第一个函数比第二个函数耗得内存更少?
如果你没有厉害到那个程度是很难想出来的,但是我们使用Dis模块却能很容易找到答案:
结果:
Dis的结果其实很容易阅读:
第一列:对应的源代码行数。
第二列:对应的内存字节码的索引位置。
第三列:内部机器代码的操作。
第四列:指令参数。
第五列:实际参数。
两个函数的dis分析用*号隔开了,大家可以清晰地看到两个函数之间的语句区别。 第二个函数的字节码索引最大到了30,而第一个函数的字节码索引最大仅到了22,因此,第一个函数耗得内存比第二个函数少 。
而且,在第一列和第二列之间的 >> 号表示跳转的目标,大家可以看第二个函数第四列的 18,表示其跳转到了索引为18的指令,也就是ROT_TWO。第二个函数的跳转也比第一个函数多,这也可能导致其在某种特殊情况下的效率可能会比第一个函数低。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
模块
+关注
关注
7文章
2486浏览量
46561 -
函数
+关注
关注
3文章
3911浏览量
61313 -
代码
+关注
关注
30文章
4557浏览量
66834 -
python
+关注
关注
51文章
4678浏览量
83479
发布评论请先 登录
相关推荐
学python有哪些方向?
是Python学习的另一方向,网络编程在生活和开发中无处不在,哪里有通讯就有网络,它可以称为是一切开发的“基石”。对于所有编程开发人员必须要知其然并知其所以然,所以网络部分将从协议、封包、解包等底层进行深入剖析
发表于 03-09 15:47
Python十大应用领域和就业方向
领域,Python几乎是霸主地位,将网络一切数据作为资源,通过自动化程序进行有针对性的数据采集以及处理。从事该领域应学习爬虫策略、高性能异步IO、分布式爬虫等,并针对Scrapy框架源码进行
发表于 11-21 14:54
三种提高Python代码性能的简便方法
在互联网编程语言盛行的今天,Python是比较流行的编程语言之一。但很多程序员对于Python代码性能的方法并不了解。今天这里主要为大家介绍三种提高
发表于 08-03 18:37
python代码示例之基于Python的日历api调用代码实例
本文档的主要内容详细介绍的是python代码示例之基于Python的日历api调用代码实例。
发表于 09-06 14:25
•42次下载
Python 代码加速运行的的小技巧
的技巧进行整理。 0. 代码优化原则本文会介绍不少的 Python 代码加速运行的技巧。在深入代码优化细节之前,需要了解一些
python包、模块和库是什么
1. 模块 以 .py 为后缀的文件,我们称之为 模块,英文名 Module。 模块让你能够有逻辑地组织你的 Python 代码段,把相关的
介绍Python模块的基础知识
Python是一种高级编程语言,拥有丰富的库和模块。模块是Python中一个独立的、可重用的代码单元,它包含了一组相关的函数、类和变量。
怎么用模块来观察代码性能表现
的时间与当前时间的距离,颜色越浅代表离当前时间越近。 下面就来教大家怎么用这个模块来观察你的代码性能表现。 1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上,如果没
Dis模块的使用
Python字节码指令,而这些字节码是一种类似于汇编指令的中间语言,但是每个字节码对应的不是机器指令,而是一段C代码。 而Dis模块,就是用于查看这些字节码的运行轨迹,因此我们可以用
python如何导入模块
Python是一种强大的编程语言,它支持模块化编程,使得开发者可以将代码分解为可重用且独立的模块。模块是一个包含函数、类和变量等定义的文件,
python软件怎么运行代码
Python是一种高级编程语言,它被广泛用于开发各种类型的应用程序,从简单的脚本到复杂的网络应用和机器学习模型。要运行Python代码,您需要一个Python解释器,它可以将您的
评论