Uni ECharts 定制化使用指南

Source: InfoQ - Architecture

在最近的一篇博客文章中,Cloudflare概述了其Python Workers的演进历程,包括多项关键增强功能,比如,近乎即时的冷启动、大幅扩展的软件包兼容性,以及由流行的包管理器uv驱动的简化工作流。

长期以来,Python面临的一个挑战是启动时间过长,标准Python运行时通常需要数秒才能完成启动,尤其是在加载重量级库时。一位Hacker News用户在相关讨论帖中说出了社区的普遍困扰:

我对Python最大的一个批评点就是其缓慢的冷启动时间。当我将它用作CLI脚本语言时尤其明显。一个简单的.py脚本的启动时间很容易达到100到300毫秒,而功能相同的C、Rust或Go程序却能在10毫秒内启动。当多个脚本通过管道串联使用时,这种延迟会迅速累积,令人格外沮丧。

为解决这一问题,Cloudflare引入了一种新的架构,利用内存快照(memory snapshots)绕过初始化阶段。此外,由WebAssembly(Wasm)驱动的Python Workers使得这一能力成为可能,因为Wasm环境无需启用地址空间布局随机化(Address Space Layout Randomization,ASLR)。ASLR是操作系统中的一项安全机制,通常会使内存快照变得复杂且不安全。

在这篇博客文章中,作者解释说,通过在部署时仅执行一次顶层作用域代码,并捕获Wasm线性内存的快照,Cloudflare能够快速恢复Worker实例,从而显著提升启动速度。公司表示,像fastapipydantic这类重量级库的加载时间已从近10秒缩短至约1秒。基准测试还显示,Python Workers的启动速度比AWS Lambda(未启用SnapStart)快2.4倍,比Google Cloud Run快3倍。

此外,Cloudflare不再局限于预装的有限库的集合,而是转向一个更开放、广泛的生态系统。如今,Python Workers支持所有与Pyodide兼容的软件包,包括纯Python库,以及许多依赖动态C扩展的库(如NumPy、Pandas和Pillow)。

为有效管理这一生态,Cloudflare推出了一款集成uv的全新CLI工具pywrangler,uv是一个高性能的Python包管理器。开发者可通过标准的pyproject.toml文件管理依赖,而pywrangler会自动处理将兼容模块打包至边缘环境的复杂细节。

此次更新还将Python深度整合进了Cloudflare的高级功能体系,包括:

FastAPI集成:开发者现在可在两分钟内将完整的FastAPI应用全球部署;

Agentic AI与工作流:Python Workers已集成Cloudflare Workflows(目前处于Beta阶段),支持多步骤、持久化执行,正如InfoQ此前的报道,这对数据和AI管道具有重要意义;

持久化对象(Durable Objects):Python开发者现在可直接在边缘构建有状态应用,例如实时聊天室或数据消费者。

通过将Python视为与JavaScript并列的“一等公民”,Cloudflare正将自身定位为日益壮大的AI与数据科学社区的首选平台。此举有效消除了Python在无服务器环境中通常面临的“延迟税”,使其成为对性能敏感的生产级应用的可行选择。

正如Dominik Picheta及Cloudflare团队所指出:

Python的冷启动成本远高于JavaScript……我们的目标很高,我们正朝着“零冷启动”的目标开展未来的规划。

最后,对于希望尝试Python的开发者,Cloudflare目前在免费层中提供了Workers服务,每日可处理10万次请求。

原文链接:

Python Workers Redux: Wasm Snapshots and Native uv Tooling