社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python 潮流周刊#78:async/await 是糟糕的设计

Python猫 • 8 月前 • 255 次点击  

△微信关注Python猫” ,回复“1”领取电子书

这里分享的是 Python 潮流周刊免费开源的往期全文,原文发布于一年前。我们的付费专栏内容在发布一年后会免费开源,不少内容依然值得回看,愿大家读有所获。点击文末“阅读原文”,在网页里查看,体验更佳。

温馨提示:在微信关注 Python猫,发送一个数字“9”,即可领取 9 折优惠券,订阅专栏可享 15 元优惠。订阅后可查看全部已公开和未公开内容!

关注 Python猫后,发一个数字“1”,可免费领取已开源的往季周刊精华合集。

你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。周刊开源在 Github[1] 上,喜欢请给颗小星星支持下~

本期分享了 12 篇文章,12 个开源项目,1 则音视频,全文 2200 字。

🦄文章&教程[2]

1、游乐场智慧:线程击败 Async/Await[3]

作者确信 async/await 对大多数语言来说是一种糟糕的抽象,更好的方式是线程。虽然它让我们从回调地狱中解脱,但也带来了新的问题,如彩色函数、背压挑战等,阻碍我们追求直接直观的并发。作者建议新语言设计应采用类似 Java 的 Loom 项目的虚拟线程模型。(附:文中一再提及的一篇旧文 I'm not feeling the async pressure[4]

2、Python 真的很慢吗?[5]

文章比较了 Python 与 Node.js 和 Rust 的性能,例子是计算斐波那契数列和冒泡排序。结果发现 Python 3.11 相比上一版本有较大提升;PyPy 与 Node.js 速度十分相近。作者为 Python 近几个版本的性能提升感到满意,对 PyPy 的性能感到惊讶。

3、Django Async:准备好用于生产环境了吗?[6]

异步 Django 使用时有什么注意事项?文章介绍了全异步涉及的 ASGI Web 服务器、异步视图、异步 ORM、异步 API 调用、异步中间件等使用,结论认为 异步 Django 已经可用于生产环境。

4、为什么持久执行应该是轻量级的?[7]

持久执行能够在系统崩溃、重启或中断后恢复到之前的状态或位置。文章介绍了 DBOS 的轻量级实现,使用 Postgres 来存储工作流状态和步骤输出,支持持久化睡眠、消息传递和队列等功能,简化了开发、部署和维护。

5、Python 中管道模式——通过重载运算符实现[8]

上期周刊分享了一篇实现管道模式的文章,用的方法是 reduce 和 lambda,而这篇文章则通过重载运算符来实现,调用时更贴近 Linux 中的管道操作符。(分享自@un4gt)

6、FireDucks:Pandas 但速度快 100 倍[9]

文章分享了好几组性能测试的数据,FireDucks 平均比 Pandas 快 50 倍,比 Polars 快,甚至击败了 DuckDB!FireDucks 与现有 Pandas 100% 兼容,性能更快,看起来不错。

7、任何 Python 程序都用 24 个字符装下[10]

不算空白字符,任何 Python 程序都能编码成仅 24 个字符的长度?文章将 Unicode 空白字符的码点映射到特定的字符上,实现代码的极致压缩。

8、PEP-765:不允许在 finally 块用 return/break/continue 作退出[11]

一则新的 PEP 草案,建议限制在 finally 代码块中使用 return/break/continue 作退出,主要原因是它会导致异常被吞噬,以及 finally 中 return 的值会替代 try 子句的 return 值。

9、CPython 的垃圾回收器及其对程序性能的影响[12]

详细分析了 CPython 中的内存管理机制,主要关注循环垃圾回收器 (GC),介绍了它的运行方式和运行时机,并解释了它对程序性能的影响。还介绍了优化内存使用和减少 GC 影响的技巧,如调整 GC 阈值、使用弱引用和优化数据结构。

10、扩展 Django 项目的实用指南 [13]

作者建议随着系统增长而逐步消除瓶颈,介绍了常见瓶颈的优化方法,包括查询过程优化、数据库索引、查询集优化、视图级缓存、模板片段缓存、底层缓存 API、异步视图和后台任务、负载均衡,等等。

11、SQL、同态和约束满足问题[14]

SQL 不仅可作数据库查询,还可解决看似棘手的问题,如数独和编程挑战。文章展示了 SQL 在解决图同态和约束满足问题的强大能力,解决这类问题比纯 Python 更快。

12、使用 GDB 和 DDD,愉快地调试[15]

GDB 是一个古老的 Linux/BSD 系统调试器,文章介绍了如何定制 GDB 界面、配置 DDD、GDB 的调试技巧,以及使用 GDB 的 Python API 来创建辅助函数和美化打印等内容。

🐿️项目&资源[16]

1、pyTermTk:Python 终端工具包[17]

提供给 TUI 开发使用的基本小组件(按钮、标签、复选框等)、专用小组件(Windows, Frames, Tables等)、真彩色支持、全/半/零大小的 Unicode 字符。

2、terminal-tree:终端中的文件系统导航器[18]

在终端中通过键盘或鼠标来导航目录树,支持文件预览、路径补全和校验、路径组件。

3、chdb:进程内 OLAP SQL 引擎[19]

由 ClickHouse 提供支持的进程内 SQL OLAP 引擎,输入和输出支持 Parquet、CSV、JSON、Arrow、ORC 和 60+ 种格式,支持 Python DB API 2.0。(star 2.2K)

4、open-notebook:谷歌 Notebook LM 的开源替代[20]

支持多笔记本、支持多种模型、支持笔记转播客、广泛的内容集成方式、AI 驱动的笔记、集成搜索引擎、精细的上下文管理。

5、garak:LLM 漏洞扫描[21]

检查 LLM 的漏洞,包括探测幻觉、数据泄露、提示词注入、错误信息、有害信息、越狱等问题。(star 2.7K)

6、EasyAnimate:高分辨率和端到端的长视频生成[22]

一个基于 Transformer 架构的管道,旨在生成 AI 图像和视频,以及用于训练 Diffusion Transformer 的基线模型和 Lora 模型。(star 1.5K)

7、ASCII-generator:ASCII 生成器[23]

知名 UP 主何同学将基于此开源项目改造的程序称为“专门写了一个软件”……它支持 ASCII 字符转制,包括图像到文本、图像到图像、视频到视频。(star 6K)

8、leopards:查询 Python 列表[24]

一种查询字典列表或对象列表的方法,就像在 DBMS 中过滤一样。可查询与 OR、AND 或 NOT 匹配的字典/对象。速度比 Pandas 快。

9、分布式系统第 4 版-电子书[25]

Distributed Systems 的第 4 版,包含各种小的更正项,所有 Python 代码已更新为 Python 3.

10、ebook2audiobook:生成带章节的电子书有声读物[26]

用 Calibre 和 Coqui XTTS 将电子书转换为带章节和元数据的有声读物,支持可选的语音克隆和多种语言!(star 1K)

11、pensieve:完全由你掌控数据的「被动记录」项目[27]

一个专注于隐私的被动记录项目,可以自动记录屏幕内容,构建智能索引,并提供便捷的 Web 界面来检索历史记录。数据存储在本地,完全本地化运行。

12、yami:有简单 UI 的开源音乐播放器[28]

用 Python 开发的轻量级音乐播放器,简约跨平台,支持本地文件及用 spotdl 在线下载。

🐢播客&视频[29]

1、PyData Tel Aviv 2024 视频列表(24个)[30]

PyData Tel Aviv 是一个专注于 PyData 项目的会议和社区活动,聚焦数据分析、数据科学和机器学习领域。

🐧 往年回顾[31]

Python 潮流周刊#28:两种线程池、四种优化程序的方法[32](2023.11.25)

🐱欢迎订阅[33]

技术周刊是聪明人在信息过载时代中筛选优质知识的聪明手段。这是一个专为国内 Python 开发者量身打造的资讯平台,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等丰富内容。立即订阅[34],每周将收到一篇文章推送,每周进步一点点。

欢迎留言,说说你最喜欢本期的哪一则分享?大家反馈得越多,我今后分享的也会越多!

欢迎将本专栏[35]分享给同样爱学习的同学,当有人通过你分享的海报或者链接,购买了专栏,那么你将获得高额的返利。

Python 潮流周刊第 2 季完结了,分享几项总结[36]

Python 潮流周刊第一季精华合集(1~30)[37]

万字浓缩版,Python 潮流周刊第 1 季的 800 个链接![38]

🔥关联阅读

上一期:Python 潮流周刊#77:Python 依赖管理就像垃圾场火灾?[39]

下一期:Python 潮流周刊#79:Python 的元数据困境[40]

参考资料
[1] 

Github: https://github.com/chinesehuazhou/python-weekly

[2] 

🦄文章&教程:  https://xiaobot.net/p/python_weekly

[3] 

游乐场智慧:线程击败 Async/Await: https://lucumr.pocoo.org/2024/11/18/threads-beat-async-await/

[4] 

I'm not feeling the async pressure: https://pythoncat.top/posts/2020-01-11-flask

[5] 

Python 真的很慢吗?: https://blog.miguelgrinberg.com/post/is-python-really-that-slow

[6] 

Django Async:准备好用于生产环境了吗?: https://jonathanadly.com/is-async-django-ready-for-prime-time

[7] 

为什么持久执行应该是轻量级的?:  https://www.dbos.dev/blog/what-is-lightweight-durable-execution

[8] 

Python 中管道模式——通过重载运算符实现: https://un4gt.github.io/python/python_some_tips/python_pipeline.html

[9] 

FireDucks:Pandas 但速度快 100 倍: https://hwisnu.bearblog.dev/fireducks-pandas-but-100x-faster/

[10] 

任何 Python 程序都用 24 个字符装下: https://purplesyringa.moe/blog/any-python-program-fits-in-24-characters/

[11] 

PEP-765:不允许在 finally 块用 return/break/continue 作退出: https://peps.python.org/pep-0765/

[12] 

CPython 的垃圾回收器及其对程序性能的影响: https://blog.codingconfessions.com/p/connecting-cpythons-gc-internals

[13] 

扩展 Django 项目的实用指南: https://slimsaas.com/blog/django-scaling-performance/

[14] 

SQL、同态和约束满足问题: https://www.philipzucker.com/sql_graph_csp/

[15] 

使用 GDB 和 DDD,愉快地调试: https://begriffs.com/posts/2022-07-17-debugging-gdb-ddd.html

[16] 

🐿️项目&资源: https://xiaobot.net/p/python_weekly

[17] 

pyTermTk:Python 终端工具包: https://github.com/ceccopierangiolieugenio/pyTermTk

[18] 

terminal-tree:终端中的文件系统导航器: https://github.com/willmcgugan/terminal-tree

[19] 

chdb:进程内 OLAP SQL 引擎: https://github.com/chdb-io/chdb

[20] 

open-notebook:谷歌 Notebook LM 的开源替代: https://github.com/lfnovo/open-notebook

[21] 

garak:LLM 漏洞扫描:  https://github.com/NVIDIA/garak

[22] 

EasyAnimate:高分辨率和端到端的长视频生成: https://github.com/aigc-apps/EasyAnimate

[23] 

ASCII-generator:ASCII 生成器: https://github.com/vietnh1009/ASCII-generator

[24] 

leopards:查询 Python 列表: https://github.com/mkalioby/leopards

[25] 

分布式系统第 4 版-电子书: https://www.distributed-systems.net/index.php/books/ds4/

[26] 

ebook2audiobook:生成带章节的电子书有声读物:  https://github.com/DrewThomasson/ebook2audiobook

[27] 

pensieve:完全由你掌控数据的「被动记录」项目: https://github.com/arkohut/pensieve

[28] 

yami:有简单 UI 的开源音乐播放器: https://github.com/DevER-M/yami

[29] 

🐢播客&视频: https://xiaobot.net/p/python_weekly

[30] 

PyData Tel Aviv 2024 视频列表(24个): https://www.youtube.com/playlist?list=PLGVZCDnMOq0pRsGPxDvLZfuufNgqREc0a

[31] 

🐧 往年回顾:  https://xiaobot.net/p/python_weekly

[32] 

Python 潮流周刊#28:两种线程池、四种优化程序的方法: https://pythoncat.top/posts/2023-11-25-weekly

[33] 

🐱欢迎订阅: https://xiaobot.net/p/python_weekly

[34] 

立即订阅: https://xiaobot.net/p/python_weekly

[35] 

本专栏: https://xiaobot.net/p/python_weekly

[36] 

Python 潮流周刊第 2 季完结了,分享几项总结: https://pythoncat.top/posts/2024-07-14-iweekly

[37] 

Python 潮流周刊第一季精华合集(1~30): https://pythoncat.top/posts/2023-12-11-weekly

[38] 

万字浓缩版,Python 潮流周刊第 1 季的 800 个链接!: https://xiaobot.net/post/78c3d645-86fa-4bd8-8eac-46fb192a339e

[39] 

Python 潮流周刊#77:Python 依赖管理就像垃圾场火灾?: https://pythoncat.top/posts/2024-11-17-weekly

[40] 

Python 潮流周刊#79:Python 的元数据困境: https://pythoncat.top/posts/2024-12-01-weekly

如果你正在寻找优质的Python文章和项目,我必须向你推荐🎁Python潮流周刊🎁!

它精选全网的优秀文章、教程、开源项目、软件工具、播客、视频、热门话题等丰富内容,让你紧跟技术最前沿,获取最新的第一手学习资料!

欢迎点击下方图片,了解这份全世界知识密度最高、知识广度最大的 Python 技术周刊。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/189551