自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(133)
  • 资源 (1)
  • 收藏
  • 关注

原创 深入理解 Python 虚拟机:进程、线程和协程

在本篇文章当中我们将通过分析部分源代码来详细分析 Python 当中的进程、线程和协程,重点讨论线程的创建过程和协程是如何被使用的。

2023-10-20 15:27:42 146

原创 深入理解 Python 虚拟机:协程初探——不过是生成器而已

在 Python 3.4 Python 引入了一个非常有用的特性——协程,在本篇文章当中我们将详细介绍一下 Python 协程的原理以及虚拟机具体的实现协程的方式。

2023-10-16 02:00:24 374

原创 深入理解 python 虚拟机:GIL 源码分析——天使还是魔鬼?

在本篇文章当中详细介绍了 CPython 选择 GIL 的原因,以及 GIL 对于 Python 程序和虚拟机的影响,最后详细分析了一个早期版本的 GIL 源代码实现。

2023-10-14 21:57:08 176

原创 深入理解Python虚拟机:super超级魔法的背后原理

在 Python 当中 super 的使用方式分为两种一种是可以直接使用参数,另外一种是在类的方法当中不使用参数,后者的实现稍微复杂一点,他会从当前栈帧和局部变量表当中分别取出类对象和类,作为 super 的参数,从而实现 super 的功能。当对象进行方法调用的时候,就会从类的 mro 当中的第一个类开始寻找,直到最后一个类为止,当第一次发现对应的类有相应的方法时就进行返回就调用这个类的这个方法。为什么要进行这样的处理呢,这是因为需要调用相应位置类的父类方法,因此所有的使用 super 的位置的。

2023-10-12 16:15:32 135

原创 Python3.12 新特性——GIL大突破!

2023年 10 月 2 日, Python3.12 正式发布了,和之前版本相比,Python3.12 有比较大的更新,核心最主要的就是能够支持解释器之间的隔离了,在一个 Python 进程当中能够有多个解释器,这在一定程度上缓解了 GIL 带来的问题。

2023-10-07 18:33:42 1111

原创 深入理解 python 虚拟机:原来虚拟机是这么实现闭包的

在本篇文章当中主要从虚拟机层面讨论函数闭包是如何实现的,所谓闭包就是将函数和环境存储在一起的记录。这里有三个重点一个是函数,一个是环境(简单说来就是程序当中变量),最后一个需要将两者组合在一起所形成的东西,才叫做闭包。

2023-10-07 13:53:50 64

原创 深入理解 python 虚拟机:生成器停止背后的魔法

在本篇文章当中主要分析的生成器内部实现原理和相关的两个重要的字节码,分析了生成器能够停下来还能够恢复执行的原因,深入剖析的生成器的原理的各个细节。

2023-10-04 01:29:03 201

原创 深入理解 python 虚拟机:花里胡哨的魔术方法

在本篇文章当中主要给大家介绍在 cpython 当中一些比较花里胡哨的魔术方法,以帮助我们自己实现比较花哨的功能,当然这其中也包含一些也非常实用的魔术方法。

2023-05-23 21:52:39 156

原创 深入理解 python 虚拟机:魔术方法之数学计算

在本篇文章当中主要给大家介绍在 python 当中一些常见的魔术方法,本篇文章主要是关于与数学计算相关的一些魔术方法,在很多科学计算的包当中都使用到了这些魔术方法。

2023-05-21 14:04:30 325

原创 深入理解 python 虚拟机:破解核心魔法——反序列化 pyc 文件

在本篇文章当中主要给大家分析了 python 对象序列化之后我们该如何反序列化这些对象,并且使用 python 对二进制文件进行了分析,可以成功的将 python 对象解析!

2023-05-17 03:17:10 447

原创 深入理解 python 虚拟机:多继承与 mro

在本篇文章当中将主要给大家介绍 python 当中的多继承和 mro,通过介绍在多继承当中存在的问题就能够理解在 cpython 当中引入 c3 算法的原因了,从而能够帮助大家更好的了理解 mro 。

2023-05-15 21:14:21 297 2

原创 深入理解 python 虚拟机:描述器实现原理与源码分析

在本篇文章当中主要给大家介绍描述器背后的实现原理,通过分析 cpython 对应的源代码了解与描述器相关的字节码的指令,我们就可以真正了解到描述器背后的原理!

2023-05-09 00:30:26 88

原创 深入理解 python 虚拟机:描述器的王炸应用-property、staticmethod 和 classmehtod

在本篇文章当中主要给大家介绍描述器在 python 语言当中有哪些应用,主要介绍如何使用 python 语言实现 python 内置的 proterty 、staticmethod 和 class method 。

2023-05-08 19:18:37 99

原创 深入理解python虚拟机:黑科技的幕后英雄——描述器

在本篇文章当中主要给大家介绍一个我们在使用类的时候经常使用但是却很少在意的黑科技——描述器,在本篇文章当中主要分析描述器的原理,以及介绍使用描述器实现属性访问控制和 orm 映射等等功能!

2023-05-07 02:56:26 149

原创 深入理解python虚拟机:调试器实现原理与源码分析

在本篇文章当中主要给大家介绍 python 语言当中调试器的实现原理,通过了解一个语言的调试器的实现原理我们可以更加深入的理解整个语言的运行机制,可以帮助我们更好的理解程序的执行。

2023-04-26 03:16:33 238

原创 深入理解python虚拟机:程序执行的载体——栈帧

在本篇文章当中主要介绍了 cpython 当中的函数执行的时候的栈帧结构,作为程序执行的载体,深入理解栈帧可以很好帮助我们理解 python 程序执行原理。

2023-04-25 01:10:32 314

原创 深入理解 python 虚拟机:字节码教程(3)——深入剖析循环实现原理

在本篇文章当中主要给大家介绍 cpython 当中跟循环相关的字节码,这部分字节码相比起其他字节码来说相对复杂一点,通过分析这部分字节码我们对程序的执行过程将会有更加深刻的理解。

2023-04-15 17:35:44 103

原创 深入理解 python 虚拟机:字节码教程(2)——控制流是如何实现的?

在本篇文章当中主要给大家分析 python 当中与控制流有关的字节码,通过对这部分字节码的了解,我们可以更加深入了解 python 字节码的执行过程和控制流实现原理。

2023-04-10 18:47:47 94

原创 深入理解 python 虚拟机:字节码教程(1)——原来装饰器是这样实现的

在本篇文章当中主要给大家介绍 cpython 虚拟机对于字节码的设计以及在调试过程当中一个比较重要的字段 co_lnotab 的设计原理!

2023-04-09 03:21:01 119

原创 深入理解 python 虚拟机:令人拍案叫绝的字节码设计

在本篇文章当中主要给大家介绍 cpython 虚拟机对于字节码的设计以及在调试过程当中一个比较重要的字段 co_lnotab 的设计原理!

2023-04-03 01:23:09 104

原创 深入理解 python 虚拟机:字节码灵魂——Code obejct

在本篇文章当中主要给大家深入介绍在 cpython 当中非常重要的一个数据结构 code object,在本篇文章当中将会举一些例子以便更加深入理解这些字段。

2023-04-02 01:36:57 76

原创 深入理解 python 虚拟机:pyc 文件结构

在本篇文章当中主要给大家介绍一下 .py 文件在被编译之后对应的 pyc 文件结构,pyc 文件当中的一个核心内容就是 python 字节码。

2023-03-28 19:04:53 232

原创 深入理解 Python 虚拟机:字典(dict)的优化

在前面的文章当中我们讨论的是 python3 当中早期的内嵌数据结构字典的实现,在本篇文章当中主要介绍在后续对于字典的内存优化。

2023-03-26 01:44:10 191

原创 深入理解 Python 虚拟机:字节(bytes)的实现原理及源码剖析

在本篇文章当中主要给大家介绍在 cpython 内部,bytes 的实现原理、内存布局以及与 bytes 相关的一个比较重要的优化点—— bytes 的拼接。

2023-03-24 01:11:11 545

原创 深入理解 Python 虚拟机:字典(dict)的实现原理及源码剖析

在本篇文章当中主要给大家深入介绍一下在 cpython 当中字典的实现原理,在本篇文章当中主要介绍在早期 python3 当中的版本字典的实现,现在的字典做了部分优化,我们在后面的文章当中再介绍。

2023-03-22 21:39:33 226

原创 深入理解 Python 虚拟机:集合(set)的实现原理及源码剖析

在本篇文章当中主要给大家介绍在 cpython 虚拟机当中的集合 set 的实现原理以及对应的源代码分析。

2023-03-20 21:23:58 129

原创 深入理解 Python 虚拟机:复数(complex)的实现原理及源码剖析

在本篇文章当中主要给大家介绍在 cpython 虚拟机当中是如何实现 复数 complex 这个数据类型的,这个数据类型在 cpython 当中一应该是一个算比较简单的数据类型了,非常容易理解。

2023-03-14 01:00:31 218

原创 深入理解 Python 虚拟机:整型(int)的实现原理及源码剖析

在本篇文章当中主要分析在 cpython 虚拟机当中 float 类型的实现原理以及与他相关的一些源代码。

2023-03-13 01:33:22 318

原创 深入理解 Python 虚拟机:浮点数(float)的实现原理及源码剖析

在本篇文章当中主要分析在 cpython 虚拟机当中 float 类型的实现原理以及与他相关的一些源代码。

2023-03-12 01:31:22 182

原创 深入理解 Python 虚拟机:元组(tuple)的实现原理及源码剖析

在本篇文章当中主要给大家介绍 cpython 虚拟机当中针对列表的实现,在 Python 中,tuple 是一种非常常用的数据类型,在本篇文章当中将深入去分析这一点是如何实现的。

2023-03-11 00:47:21 322

原创 深入理解 Python 虚拟机:列表(list)的实现原理及源码剖析

在本篇文章当中主要给大家介绍 cpython 虚拟机当中针对列表的实现,在 Python 中,List 是一种非常常用的数据类型,可以存储任何类型的数据,并且支持各种操作,如添加、删除、查找、切片等,在本篇文章当中将深入去分析这一点是如何实现的。

2023-03-08 02:28:03 480

原创 OpenMP task construct 实现原理以及源码分析

在本篇文章当中主要给大家介绍在 OpenMP 当中 task 的实现原理,以及他调用的相关的库函数的具体实现。在本篇文章当中最重要的就是理解整个 OpenMP 的运行机制。

2023-03-05 21:49:07 147 1

原创 OpenMP Sections Construct 实现原理以及源码分析

在本篇文章当中主要介绍了 OpenMP 当中 sections 的实现原理和相关的动态库函数分析,关于 sections 重点在编译器会如何对 sections 的编译指导语句进行处理的,动态库函数和 for 循环的动态调度方式是一样的,只不过 chunk size 设置成 1,分块的起始位置等于 1,分块的最终值是 section 代码块的个数,最终在动态调度的方式使用 CAS 不断获取 section 的执行权,直到所有的 section 被执行完成。

2023-02-17 08:06:48 87

原创 OPENMP FOR CONSTRUCT GUIDED 调度方式实现原理和源码分析

在本篇文章当中主要给大家介绍在 OpenMP 当中 guided 调度方式的实现原理。

2023-02-15 00:16:29 124

原创 OpenMP For Construct dynamic 调度方式实现原理和源码分析

在本篇文章当中主要给大家介绍 OpenMp for construct 的实现原理,以及与他相关的动态库函数分析。

2023-02-03 15:01:36 237

原创 OpenMP Parallel Construct 实现原理与源码分析

在本篇文章当中我们将主要分析 OpenMP 当中的 parallel construct 具体时如何实现的,以及这个 construct 调用了哪些运行时库函数,并且详细分析这期间的参数传递!

2023-01-25 16:45:55 1180

原创 OpenMP 原子指令设计与实现

在本篇文章当中主要是深入剖析了 OpenMP 当中各种原子指令的实现原理以及分析了他们对应的汇编程序,OpenMP 在处理 #pragma omp atomic 的时候如果能够使用原子指令完成需求那就直接使用原子指令,否则的话就使用 CAS cmpxchg 指令和 while 循环完成对应的需求。

2023-01-21 17:50:03 1135

原创 深入理解 OpenMP 线程同步机制

在本篇文章当中主要给大家介绍了一些经常使用的 OpenMP 用于线程之间同步的指令,并且用实际例子分析它内部的工作机制,以及我们改如何使用 nowait 优化程序的性能,以上就是本篇文章的所有内容希望大家有所收获!

2023-01-21 00:53:16 1223

原创 OpenMP 环境变量使用总结

在本篇文章当中主要给大家介绍了一些经常使用的 OpenMP 系统环境变量,设置环境变量有时候能够更加方便的设置程序,同时有些环境变量对应一些 OpenMP 的动态库函数。以上就是本篇文章的所有内容希望大家有所收获!

2023-01-19 15:06:21 2162 1

原创 Openmp Runtime 库函数汇总(下)——深入剖析锁原理与实现

在本篇文章当中主要给大家分析了 OpenMP 当中两种主要的锁的实现,分别是 omp_lock_t 和 omp_nest_lock_t,一种是简单的锁实现,另外一种是可重入锁的实现。

2023-01-16 22:24:52 634

c++课件1-8(1).zip

这是一些C++的基础知识的课程 ,了解一下基本C++语法,同时学习代码的书写,更重要的是学习类和数据结构的知识

2019-08-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除