再测python3.13a —— python3.13是否移除了GIL的限制(续)
前文:
相关资料:
再次编译python3.13a 版本。
依赖环境安装:
见:
https://www.cnblogs.com/devilmaycry812839668/p/17604336.html
给出完整的依赖安装:
sudo apt install gcc
sudo apt install make
sudo apt install openssl
sudo apt install libssl-dev
sudo apt install libffi-dev
sudo apt install zlib1g-dev
sudo apt install build-essential
sudo apt install gcc g++ libffi-dev build-essential checkinstall
sudo apt install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
修改配置命令(开启gil的移除功能的编译):
正确配置命令:
./configure --prefix=/home/devil/python3.13a --disable-gil
完整的配置命令:(具体安装路径需要自己修改)
./configure --prefix=/home/devil/python3.13a --disable-gil
make
make test
sudo make install
测试代码:
import threading
import time
def print_time( threadName, delay):
s = 0
for i in range(10000000):
s+=i
print(threadName, s)
p1=threading.Thread( target=print_time, args=("Thread-1", 4, ) )
p2=threading.Thread( target=print_time, args=("Thread-2", 4, ) )
p3=threading.Thread( target=print_time, args=("Thread-3", 4, ) )
p4=threading.Thread( target=print_time, args=("Thread-4", 4, ) )
p5=threading.Thread( target=print_time, args=("Thread-5", 4, ) )
p6=threading.Thread( target=print_time, args=("Thread-6", 4, ) )
p7=threading.Thread( target=print_time, args=("Thread-7", 4, ) )
p8=threading.Thread( target=print_time, args=("Thread-8", 4, ) )
a = time.time()
p1.start()
p2.start()
p3.start()
p4.start()
p5.start()
p6.start()
p7.start()
p8.start()
p1.join()
p2.join()
p3.join()
p4.join()
p5.join()
p6.join()
p7.join()
p8.join()
print(time.time()-a)
运行情况:

很不幸,这说明这个编译后的python依旧不支持 no-gil,具体原因未知,或许是这个本身3.13a+版本就不支持呢,但是GitHub上的讨论又都说可以,有些搞不清情况,这东西到底是咋弄呢,看来这次尝鲜再次失败,静等官方正式推出python3.13后再看吧,3.12已经推出了,估计3.13真的不远了。
再测python3.13a —— python3.13是否移除了GIL的限制(续)的更多相关文章
- python3.6+selenium3.13 自动化测试项目实战一
自己亲自写的第一个小项目,学了几天写出来的一个小模块,可能还不是很完美,但是还算可以了,初学者看看还是很有用的,代码注释不是很多,有问题可以加我QQ 281754043 一.项目介绍 目的: 测试某官 ...
- suse11 安装 python3.6 python3 安装步骤
首先需要去网上下载Python-3.6.4.tgz,libopenssl-devel-0.9.8j-2.1.x86_64.rpm zlib-devel-1.2.7-3.14.x86_64.rpm li ...
- centos 7 安装 python3.6 python3 安装步骤以及pip pip3安装挂载
首先去python官网下载python3的源码包,网址:https://www.python.org/ 或者直接wget下载 wget https://www.python.org/ftp/pytho ...
- Python3 源码阅读-深入了解Python GIL
今日得到: 三人行,必有我师焉,择其善者而从之,其不善者而改之. 今日看源码才理解到现在已经是2020年了,而在2010年的时候,大佬David Beazley就做了讲座讲解Python GIL的设计 ...
- 再测云原生数据库性能:PolarDB依旧最强,TDSQL-C、GaussDB变化不大
1.摘要 近期,腾讯云数据库在文章「腾讯云TDSQL-C重磅升级,性能全面领跑云原生数据库市场」中提到,某些场景下性能有非常大的提升,且超过国内某橙色云厂商.恰好,在5月份,我们对各个厂商的云原生数据 ...
- 云数据库技术|“重磅升级”后再测 TDSQL-C
来源:云数据库技术 标题 1.摘要 前段时间,测试了国内主要云原生数据库 PolarDB.TDSQL-C.GaussDB 的性能,参考:<再测云原生数据库性能>.在上次测试结果中,由于地域 ...
- Python 官方研讨会:彻底移除 GIL 真的可行么?
作者:Łukasz Langa 译者:豌豆花下猫,来源:Python猫 原文:https://lukasz.langa.pl/5d044f91-49c1-4170-aed1-62b6763e6ad0 ...
- 人工智能,丹青圣手,全平台(原生/Docker)构建Stable-Diffusion-Webui的AI绘画库教程(Python3.10/Pytorch1.13.0)
世间无限丹青手,遇上AI画不成.最近一段时间,可能所有人类画师都得发出一句"既生瑜,何生亮"的感叹,因为AI 绘画通用算法Stable Diffusion已然超神,无需美术基础,也 ...
- python3学习笔记13(数据结构)
参考http://www.runoob.com/python3/python3-data-structure.html 列表 列表是可修改的. 列表方法让列表可以方便的作为一个堆栈来使用,堆栈作为特定 ...
- python3.6+selenium3.13 自动化测试项目实战一(增加自动发送邮件报告接口)
说明: 继实战项目一的基础上添加自动发送报告邮件接口,代码有部分调整,可以结合实战一和上篇文章学习 变动: 1.增加文本文档SendToUserinfo.txt 用来保存邮件接收者的信息 2.修改测试 ...
随机推荐
- ETL工具-nifi干货系列 第三讲 nifi web ui 使用教程
1.nifi 服务启动之后,浏览器输入https://localhost:8443/nifi ,匿名登录或者输入用户名密码进入操作页面,如下图所示: 2.组件工具栏 处理器,鼠标放到图标上提示Proc ...
- m3u8文件转换mp4 ffmpeg
m3u8文件转换mp4 ffmpeg 命令行执行下面语句: ffmpeg -i input.m3u8 -c copy output.mp4 ffmpeg.exe 和 input.m3u8 放在同一目录 ...
- Spring扩展——@Import注解
引言 在Spring中有许多Enable开头的注解,比如以下常见注解 @EnableTransactionManagement @EanbleAsync @EnableCache @EnableAsp ...
- SDL3 入门(1):Hello, SDL3!
在本系列中我们使用 Windows Terminal + Powershell 组合作为我们在 Windows 系统下的终端工具,Windows 11 自带该环境.你也可以使用任意自己喜欢的终端环境代 ...
- hbck2的一些用法
一.执行 hbase org.apache.hbase.HBCK2 可以看到下面一些选择项 **示例: -d 打印debug日志 -s 跳过客户端与服务端一致性的版本检测 hbase org.apac ...
- 实验9.单臂路由实现Vlan互通实验
# 单臂路由实现Vlan互通实验 本实验用于测试单臂路由方式实现Vlan路由. 实验组 实验过程 SW int g0/0/1 port link-type access port default vl ...
- 红黑树详细讲解(结合JavaTreeMap)
1:红黑树简介 红黑树又称红-黑二叉树,它首先是一颗二叉树,它具体二叉树所有的特性.同时红黑树更是一颗自平衡的排序二叉树.根据二叉查找树的概念可以得出正常情况下查找的时间复杂度为O(log n),但是 ...
- Linux进程退出:SIGINT、SIGTERM 和 SIGKILL 有关信号 区别
背景 学习 海思SDK,查看例程的时候发现了类似下面的代码: int main(int argc, char *argv[]) { if(argc != 2) { printf("Usage ...
- 复习 - ajax
复习呢有一个很直观的感受,就是以前学的东西,萌懂半懂的,这一来全部都清楚了,你以前以为你学的并不好但是复习一次把以前的案例一做,居然能够自己独立完成,知识点看着掌握的还不错. 1. 两天时间就把整个a ...
- 关于python3多线程和协程
以下内容部分由chatgpt生成,本文仅作为备忘和记录. asyncio.sleep 和 time.sleep 都是用于在 Python 中进行延迟操作的函数,但它们的工作方式和使用场景有一些不同. ...