- 博客(133)
- 资源 (1)
- 收藏
- 关注
原创 深入理解 Python 虚拟机:进程、线程和协程
在本篇文章当中我们将通过分析部分源代码来详细分析 Python 当中的进程、线程和协程,重点讨论线程的创建过程和协程是如何被使用的。
2023-10-20 15:27:42
240
原创 深入理解 Python 虚拟机:协程初探——不过是生成器而已
在 Python 3.4 Python 引入了一个非常有用的特性——协程,在本篇文章当中我们将详细介绍一下 Python 协程的原理以及虚拟机具体的实现协程的方式。
2023-10-16 02:00:24
444
原创 深入理解 python 虚拟机:GIL 源码分析——天使还是魔鬼?
在本篇文章当中详细介绍了 CPython 选择 GIL 的原因,以及 GIL 对于 Python 程序和虚拟机的影响,最后详细分析了一个早期版本的 GIL 源代码实现。
2023-10-14 21:57:08
262
原创 深入理解Python虚拟机:super超级魔法的背后原理
在 Python 当中 super 的使用方式分为两种一种是可以直接使用参数,另外一种是在类的方法当中不使用参数,后者的实现稍微复杂一点,他会从当前栈帧和局部变量表当中分别取出类对象和类,作为 super 的参数,从而实现 super 的功能。当对象进行方法调用的时候,就会从类的 mro 当中的第一个类开始寻找,直到最后一个类为止,当第一次发现对应的类有相应的方法时就进行返回就调用这个类的这个方法。为什么要进行这样的处理呢,这是因为需要调用相应位置类的父类方法,因此所有的使用 super 的位置的。
2023-10-12 16:15:32
214
原创 Python3.12 新特性——GIL大突破!
2023年 10 月 2 日, Python3.12 正式发布了,和之前版本相比,Python3.12 有比较大的更新,核心最主要的就是能够支持解释器之间的隔离了,在一个 Python 进程当中能够有多个解释器,这在一定程度上缓解了 GIL 带来的问题。
2023-10-07 18:33:42
1632
原创 深入理解 python 虚拟机:原来虚拟机是这么实现闭包的
在本篇文章当中主要从虚拟机层面讨论函数闭包是如何实现的,所谓闭包就是将函数和环境存储在一起的记录。这里有三个重点一个是函数,一个是环境(简单说来就是程序当中变量),最后一个需要将两者组合在一起所形成的东西,才叫做闭包。
2023-10-07 13:53:50
112
原创 深入理解 python 虚拟机:生成器停止背后的魔法
在本篇文章当中主要分析的生成器内部实现原理和相关的两个重要的字节码,分析了生成器能够停下来还能够恢复执行的原因,深入剖析的生成器的原理的各个细节。
2023-10-04 01:29:03
260
原创 深入理解 python 虚拟机:花里胡哨的魔术方法
在本篇文章当中主要给大家介绍在 cpython 当中一些比较花里胡哨的魔术方法,以帮助我们自己实现比较花哨的功能,当然这其中也包含一些也非常实用的魔术方法。
2023-05-23 21:52:39
257
1
原创 深入理解 python 虚拟机:魔术方法之数学计算
在本篇文章当中主要给大家介绍在 python 当中一些常见的魔术方法,本篇文章主要是关于与数学计算相关的一些魔术方法,在很多科学计算的包当中都使用到了这些魔术方法。
2023-05-21 14:04:30
396
原创 深入理解 python 虚拟机:破解核心魔法——反序列化 pyc 文件
在本篇文章当中主要给大家分析了 python 对象序列化之后我们该如何反序列化这些对象,并且使用 python 对二进制文件进行了分析,可以成功的将 python 对象解析!
2023-05-17 03:17:10
581
原创 深入理解 python 虚拟机:多继承与 mro
在本篇文章当中将主要给大家介绍 python 当中的多继承和 mro,通过介绍在多继承当中存在的问题就能够理解在 cpython 当中引入 c3 算法的原因了,从而能够帮助大家更好的了理解 mro 。
2023-05-15 21:14:21
447
2
原创 深入理解 python 虚拟机:描述器实现原理与源码分析
在本篇文章当中主要给大家介绍描述器背后的实现原理,通过分析 cpython 对应的源代码了解与描述器相关的字节码的指令,我们就可以真正了解到描述器背后的原理!
2023-05-09 00:30:26
136
原创 深入理解 python 虚拟机:描述器的王炸应用-property、staticmethod 和 classmehtod
在本篇文章当中主要给大家介绍描述器在 python 语言当中有哪些应用,主要介绍如何使用 python 语言实现 python 内置的 proterty 、staticmethod 和 class method 。
2023-05-08 19:18:37
166
原创 深入理解python虚拟机:黑科技的幕后英雄——描述器
在本篇文章当中主要给大家介绍一个我们在使用类的时候经常使用但是却很少在意的黑科技——描述器,在本篇文章当中主要分析描述器的原理,以及介绍使用描述器实现属性访问控制和 orm 映射等等功能!
2023-05-07 02:56:26
211
原创 深入理解python虚拟机:调试器实现原理与源码分析
在本篇文章当中主要给大家介绍 python 语言当中调试器的实现原理,通过了解一个语言的调试器的实现原理我们可以更加深入的理解整个语言的运行机制,可以帮助我们更好的理解程序的执行。
2023-04-26 03:16:33
340
原创 深入理解python虚拟机:程序执行的载体——栈帧
在本篇文章当中主要介绍了 cpython 当中的函数执行的时候的栈帧结构,作为程序执行的载体,深入理解栈帧可以很好帮助我们理解 python 程序执行原理。
2023-04-25 01:10:32
473
原创 深入理解 python 虚拟机:字节码教程(3)——深入剖析循环实现原理
在本篇文章当中主要给大家介绍 cpython 当中跟循环相关的字节码,这部分字节码相比起其他字节码来说相对复杂一点,通过分析这部分字节码我们对程序的执行过程将会有更加深刻的理解。
2023-04-15 17:35:44
169
原创 深入理解 python 虚拟机:字节码教程(2)——控制流是如何实现的?
在本篇文章当中主要给大家分析 python 当中与控制流有关的字节码,通过对这部分字节码的了解,我们可以更加深入了解 python 字节码的执行过程和控制流实现原理。
2023-04-10 18:47:47
171
原创 深入理解 python 虚拟机:字节码教程(1)——原来装饰器是这样实现的
在本篇文章当中主要给大家介绍 cpython 虚拟机对于字节码的设计以及在调试过程当中一个比较重要的字段 co_lnotab 的设计原理!
2023-04-09 03:21:01
227
原创 深入理解 python 虚拟机:令人拍案叫绝的字节码设计
在本篇文章当中主要给大家介绍 cpython 虚拟机对于字节码的设计以及在调试过程当中一个比较重要的字段 co_lnotab 的设计原理!
2023-04-03 01:23:09
206
原创 深入理解 python 虚拟机:字节码灵魂——Code obejct
在本篇文章当中主要给大家深入介绍在 cpython 当中非常重要的一个数据结构 code object,在本篇文章当中将会举一些例子以便更加深入理解这些字段。
2023-04-02 01:36:57
142
原创 深入理解 python 虚拟机:pyc 文件结构
在本篇文章当中主要给大家介绍一下 .py 文件在被编译之后对应的 pyc 文件结构,pyc 文件当中的一个核心内容就是 python 字节码。
2023-03-28 19:04:53
371
原创 深入理解 Python 虚拟机:字典(dict)的优化
在前面的文章当中我们讨论的是 python3 当中早期的内嵌数据结构字典的实现,在本篇文章当中主要介绍在后续对于字典的内存优化。
2023-03-26 01:44:10
235
原创 深入理解 Python 虚拟机:字节(bytes)的实现原理及源码剖析
在本篇文章当中主要给大家介绍在 cpython 内部,bytes 的实现原理、内存布局以及与 bytes 相关的一个比较重要的优化点—— bytes 的拼接。
2023-03-24 01:11:11
812
原创 深入理解 Python 虚拟机:字典(dict)的实现原理及源码剖析
在本篇文章当中主要给大家深入介绍一下在 cpython 当中字典的实现原理,在本篇文章当中主要介绍在早期 python3 当中的版本字典的实现,现在的字典做了部分优化,我们在后面的文章当中再介绍。
2023-03-22 21:39:33
290
原创 深入理解 Python 虚拟机:集合(set)的实现原理及源码剖析
在本篇文章当中主要给大家介绍在 cpython 虚拟机当中的集合 set 的实现原理以及对应的源代码分析。
2023-03-20 21:23:58
188
原创 深入理解 Python 虚拟机:复数(complex)的实现原理及源码剖析
在本篇文章当中主要给大家介绍在 cpython 虚拟机当中是如何实现 复数 complex 这个数据类型的,这个数据类型在 cpython 当中一应该是一个算比较简单的数据类型了,非常容易理解。
2023-03-14 01:00:31
313
原创 深入理解 Python 虚拟机:整型(int)的实现原理及源码剖析
在本篇文章当中主要分析在 cpython 虚拟机当中 float 类型的实现原理以及与他相关的一些源代码。
2023-03-13 01:33:22
407
原创 深入理解 Python 虚拟机:浮点数(float)的实现原理及源码剖析
在本篇文章当中主要分析在 cpython 虚拟机当中 float 类型的实现原理以及与他相关的一些源代码。
2023-03-12 01:31:22
282
原创 深入理解 Python 虚拟机:元组(tuple)的实现原理及源码剖析
在本篇文章当中主要给大家介绍 cpython 虚拟机当中针对列表的实现,在 Python 中,tuple 是一种非常常用的数据类型,在本篇文章当中将深入去分析这一点是如何实现的。
2023-03-11 00:47:21
422
原创 深入理解 Python 虚拟机:列表(list)的实现原理及源码剖析
在本篇文章当中主要给大家介绍 cpython 虚拟机当中针对列表的实现,在 Python 中,List 是一种非常常用的数据类型,可以存储任何类型的数据,并且支持各种操作,如添加、删除、查找、切片等,在本篇文章当中将深入去分析这一点是如何实现的。
2023-03-08 02:28:03
603
原创 OpenMP task construct 实现原理以及源码分析
在本篇文章当中主要给大家介绍在 OpenMP 当中 task 的实现原理,以及他调用的相关的库函数的具体实现。在本篇文章当中最重要的就是理解整个 OpenMP 的运行机制。
2023-03-05 21:49:07
215
1
原创 OpenMP Sections Construct 实现原理以及源码分析
在本篇文章当中主要介绍了 OpenMP 当中 sections 的实现原理和相关的动态库函数分析,关于 sections 重点在编译器会如何对 sections 的编译指导语句进行处理的,动态库函数和 for 循环的动态调度方式是一样的,只不过 chunk size 设置成 1,分块的起始位置等于 1,分块的最终值是 section 代码块的个数,最终在动态调度的方式使用 CAS 不断获取 section 的执行权,直到所有的 section 被执行完成。
2023-02-17 08:06:48
136
原创 OPENMP FOR CONSTRUCT GUIDED 调度方式实现原理和源码分析
在本篇文章当中主要给大家介绍在 OpenMP 当中 guided 调度方式的实现原理。
2023-02-15 00:16:29
187
原创 OpenMP For Construct dynamic 调度方式实现原理和源码分析
在本篇文章当中主要给大家介绍 OpenMp for construct 的实现原理,以及与他相关的动态库函数分析。
2023-02-03 15:01:36
335
原创 OpenMP Parallel Construct 实现原理与源码分析
在本篇文章当中我们将主要分析 OpenMP 当中的 parallel construct 具体时如何实现的,以及这个 construct 调用了哪些运行时库函数,并且详细分析这期间的参数传递!
2023-01-25 16:45:55
1459
原创 OpenMP 原子指令设计与实现
在本篇文章当中主要是深入剖析了 OpenMP 当中各种原子指令的实现原理以及分析了他们对应的汇编程序,OpenMP 在处理 #pragma omp atomic 的时候如果能够使用原子指令完成需求那就直接使用原子指令,否则的话就使用 CAS cmpxchg 指令和 while 循环完成对应的需求。
2023-01-21 17:50:03
1606
原创 深入理解 OpenMP 线程同步机制
在本篇文章当中主要给大家介绍了一些经常使用的 OpenMP 用于线程之间同步的指令,并且用实际例子分析它内部的工作机制,以及我们改如何使用 nowait 优化程序的性能,以上就是本篇文章的所有内容希望大家有所收获!
2023-01-21 00:53:16
1508
原创 OpenMP 环境变量使用总结
在本篇文章当中主要给大家介绍了一些经常使用的 OpenMP 系统环境变量,设置环境变量有时候能够更加方便的设置程序,同时有些环境变量对应一些 OpenMP 的动态库函数。以上就是本篇文章的所有内容希望大家有所收获!
2023-01-19 15:06:21
2559
1
原创 Openmp Runtime 库函数汇总(下)——深入剖析锁原理与实现
在本篇文章当中主要给大家分析了 OpenMP 当中两种主要的锁的实现,分别是 omp_lock_t 和 omp_nest_lock_t,一种是简单的锁实现,另外一种是可重入锁的实现。
2023-01-16 22:24:52
836
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人