{"id":"2000714","slug":"rss-4fc4dd0a4747f6","title":"线上 Worker 变慢，本地却复现不了？Cloudflare 让开发者直接看生产环境火焰图","summary":"线上 Worker 变慢，本地却复现不了？Cloudflare 让开发者直接看生产环境火焰图 - InfoQ \n首页 \nAI会议 hot\nAI课程 hot\nAI应用 hot\n报告 \nHarmonyOS \nSnowflake new\n更多 \n\n\n\n 写点什么 \n创作场景\n\n记录自己日常工作的实践、心得\n发表对生活和职场的感悟\n针对感兴趣的事件发表随笔或者杂谈\n 从 0 到 1 详细介绍你掌","topic":"大厂分享","kind":"doc","language":"zh-CN","source":"InfoQ 中文","source_url":"https://www.infoq.cn/article/pMNGPheLLJ8hkfikmjUU?utm_source=rss&amp;utm_medium=article","license":"原文版权，转载需授权","updated_at":"2026-11-07T13:55:05.260Z","word_count":2286,"url":"https://knowledgehub.wujiss.com/a/rss-4fc4dd0a4747f6","sections":[{"heading":"","text":"线上 Worker 变慢，本地却复现不了？Cloudflare 让开发者直接看生产环境火焰图 - InfoQ 首页 AI会议 hot AI课程 hot AI应用 hot 报告 HarmonyOS Snowflake new 更多   写点什么 创作场景  记录自己日常工作的实践、心得 发表对生活和职场的感悟 针对感兴趣的事件发表随笔或者杂谈 从 0 到 1 详细介绍你掌握的一门语言、一个技术，或者一个兴趣、爱好 或者，就直接把你的个人博客、公众号直接搬到这里 企业动态 行业深度 AI&amp;大模型 出海 后端 芯片&amp;算力 架构 大数据 软件工程 云计算 大前端 管理/文化 线上 Worker 变慢，本地却复现不了？Cloudflare 让开发者直接看生产环境火焰图 作者：Craig Risi 田橙 本文字数：1631 字 阅读完需：约 5 分钟 Cloudflare 为 Workers 和 Durable Objects 引入了按需 CPU 与内存性能剖析功能，开发者可以借助交互式火焰图调查生产环境中的性能瓶颈。该功能于 2026 年 10 月 9 日发布，可通过 Workers Observability 控制台或 cf CLI 生成交互式火焰图，帮助团队找出耗费资源的函数和内存分配，而不必只依赖日志和汇总指标。 开发者可以针对已部署的 Worker 版本采集 CPU 或堆内存分配剖析数据，并以火焰图查看结果。图中越宽的部分，表示相应函数占用的 CPU 时间或采样到的内存分配比例越高。剖析数据也可以下载，供离线分析。 关键区别在于，该功能针对的是已经运行的隔离实例，而不是启动一个新实例。这让开发者能够检查真实生产流量下执行的代码。Durable Objects 还支持针对某个指定实例进行性能剖析，便于调查与有状态工作负载相关的问题。不过，目标实例必须在采集期间接收到足够的流量；TypeScript 开发者也应启用源码映射，以便更容易辨认函数名称。 这一实现需要考虑 Workers 分布在 Cloudflare 边缘基础设施各处的情况：同一个脚本可能在不同数据中心和物理机器上运行多个隔离实例。因此，性能剖析请求必须识别所需的 Worker 版本，并找到合适的活跃隔离实例。Durable Objects 带来了另一项挑战，因为它们有状态，而且可能在不同位置之间迁移；Cloudflare 会将性能剖析请求路由到托管指定对象的机器。 运行时不会在整个采集过程中一直持有隔离实例锁。进行 CPU 性能剖析时，它会启动一个以 1 毫秒为间隔采样的 V8 性能分析器，随后释放锁，让请求继续执行；结束剖析并收集结果时，再重新获取锁。这使平台能够观察实时执行情况，而不必在采集期间暂停正常的请求处理。 CPU 和内存剖析回答的也是不同的问题。CPU 剖析通过采样调用栈，揭示执行时间花在了哪里，帮助找出耗时较多的函数、重复计算和潜在的优化机会。相比之下，内存剖析突出显示与函数相关的内存分配，帮助开发者找到创建过多对象或加重内存压力的代码。 这一区别对于诊断性能问题很重要：一个函数可能消耗大量 CPU，却几乎不分配内存；另一个函数则可能产生大量内存分配，但并非执行时间的主要来源。查看相应的剖析数据，有助于将调查范围缩小到相关的资源瓶颈。 Cloudflare 在内部使用该功能找出了不必要的计算和内存消耗。对一个使用 R2 绑定的 Worker 进行性能剖析时，团队发现一个递归 JSON 替换函数反复遍历嵌套数据，执行了多余的工作。据称，修正实现后，该函数的运行速度提高到原来的 2.7 倍。另一份剖析数据则发现一次不必要的重复指标调用，约占 CPU 时间的 1%。 内存剖析还发现了另一个问题：据称，部分禁用的 Prometheus 插桩代码仍在消耗大量内存。Cloudflare 称，移除剩余代码后，该 Worker 的第 99.9 百分位内存使用量从 133 MB 降至 118 MB，低于 128 MB 的限制。 Cloudflare 的功能是对现有工具的补充，而不是替代。Chrome DevTools 支持本地 CPU 性能剖析，适合开发阶段使用，但生产流量和数据可能难以复现。pprof 广泛用于 Go 及其他受支持的性能剖析工作流，提供强大的离线剖析数据分析能力；Cloudflare 也允许使用 pprof 检查下载的剖析数据。Cloudflare 这项功能的主要区别在于，可以通过平台现有的运维界面，对正在运行的 Workers 和 Durable Objects 发起性能剖析。 该功能也补充了日志、指标和分布式追踪。这些工具有助于发现服务何时变慢或消耗过多资源，而剖析数据可以帮助定位负有责任的函数。结合使用，便能更全面地了解应用的运行情况。 按需采集并非持续监控。较短的性能剖析窗口可能错过间歇性问题；堆内存剖析记录的是采集期间的分配情况，不能完整反映留存内存。Cloudflare 表示正在推进持续性能剖析，以便在无须预先判断问题何时出现的情况下，更容易调查罕见的性能问题。 对于在 Cloudflare Workers 上运行生产工作负载的团队，此次发布增加了一项实用的调试能力：无须先在本地复现问题，就能从发现资源压力进一步定位到造成问题的代码。 原文链接： https://www.infoq.com/news/2026/10/cloudflare-cpu-memory-profiling/"}],"text":"线上 Worker 变慢，本地却复现不了？Cloudflare 让开发者直接看生产环境火焰图 - InfoQ 首页 AI会议 hot AI课程 hot AI应用 hot 报告 HarmonyOS Snowflake new 更多   写点什么 创作场景  记录自己日常工作的实践、心得 发表对生活和职场的感悟 针对感兴趣的事件发表随笔或者杂谈 从 0 到 1 详细介绍你掌握的一门语言、一个技术，或者一个兴趣、爱好 或者，就直接把你的个人博客、公众号直接搬到这里 企业动态 行业深度 AI&amp;大模型 出海 后端 芯片&amp;算力 架构 大数据 软件工程 云计算 大前端 管理/文化 线上 Worker 变慢，本地却复现不了？Cloudflare 让开发者直接看生产环境火焰图 作者：Craig Risi 田橙 本文字数：1631 字 阅读完需：约 5 分钟 Cloudflare 为 Workers 和 Durable Objects 引入了按需 CPU 与内存性能剖析功能，开发者可以借助交互式火焰图调查生产环境中的性能瓶颈。该功能于 2026 年 10 月 9 日发布，可通过 Workers Observability 控制台或 cf CLI 生成交互式火焰图，帮助团队找出耗费资源的函数和内存分配，而不必只依赖日志和汇总指标。 开发者可以针对已部署的 Worker 版本采集 CPU 或堆内存分配剖析数据，并以火焰图查看结果。图中越宽的部分，表示相应函数占用的 CPU 时间或采样到的内存分配比例越高。剖析数据也可以下载，供离线分析。 关键区别在于，该功能针对的是已经运行的隔离实例，而不是启动一个新实例。这让开发者能够检查真实生产流量下执行的代码。Durable Objects 还支持针对某个指定实例进行性能剖析，便于调查与有状态工作负载相关的问题。不过，目标实例必须在采集期间接收到足够的流量；TypeScript 开发者也应启用源码映射，以便更容易辨认函数名称。 这一实现需要考虑 Workers 分布在 Cloudflare 边缘基础设施各处的情况：同一个脚本可能在不同数据中心和物理机器上运行多个隔离实例。因此，性能剖析请求必须识别所需的 Worker 版本，并找到合适的活跃隔离实例。Durable Objects 带来了另一项挑战，因为它们有状态，而且可能在不同位置之间迁移；Cloudflare 会将性能剖析请求路由到托管指定对象的机器。 运行时不会在整个采集过程中一直持有隔离实例锁。进行 CPU 性能剖析时，它会启动一个以 1 毫秒为间隔采样的 V8 性能分析器，随后释放锁，让请求继续执行；结束剖析并收集结果时，再重新获取锁。这使平台能够观察实时执行情况，而不必在采集期间暂停正常的请求处理。 CPU 和内存剖析回答的也是不同的问题。CPU 剖析通过采样调用栈，揭示执行时间花在了哪里，帮助找出耗时较多的函数、重复计算和潜在的优化机会。相比之下，内存剖析突出显示与函数相关的内存分配，帮助开发者找到创建过多对象或加重内存压力的代码。 这一区别对于诊断性能问题很重要：一个函数可能消耗大量 CPU，却几乎不分配内存；另一个函数则可能产生大量内存分配，但并非执行时间的主要来源。查看相应的剖析数据，有助于将调查范围缩小到相关的资源瓶颈。 Cloudflare 在内部使用该功能找出了不必要的计算和内存消耗。对一个使用 R2 绑定的 Worker 进行性能剖析时，团队发现一个递归 JSON 替换函数反复遍历嵌套数据，执行了多余的工作。据称，修正实现后，该函数的运行速度提高到原来的 2.7 倍。另一份剖析数据则发现一次不必要的重复指标调用，约占 CPU 时间的 1%。 内存剖析还发现了另一个问题：据称，部分禁用的 Prometheus 插桩代码仍在消耗大量内存。Cloudflare 称，移除剩余代码后，该 Worker 的第 99.9 百分位内存使用量从 133 MB 降至 118 MB，低于 128 MB 的限制。 Cloudflare 的功能是对现有工具的补充，而不是替代。Chrome DevTools 支持本地 CPU 性能剖析，适合开发阶段使用，但生产流量和数据可能难以复现。pprof 广泛用于 Go 及其他受支持的性能剖析工作流，提供强大的离线剖析数据分析能力；Cloudflare 也允许使用 pprof 检查下载的剖析数据。Cloudflare 这项功能的主要区别在于，可以通过平台现有的运维界面，对正在运行的 Workers 和 Durable Objects 发起性能剖析。 该功能也补充了日志、指标和分布式追踪。这些工具有助于发现服务何时变慢或消耗过多资源，而剖析数据可以帮助定位负有责任的函数。结合使用，便能更全面地了解应用的运行情况。 按需采集并非持续监控。较短的性能剖析窗口可能错过间歇性问题；堆内存剖析记录的是采集期间的分配情况，不能完整反映留存内存。Cloudflare 表示正在推进持续性能剖析，以便在无须预先判断问题何时出现的情况下，更容易调查罕见的性能问题。 对于在 Cloudflare Workers 上运行生产工作负载的团队，此次发布增加了一项实用的调试能力：无须先在本地复现问题，就能从发现资源压力进一步定位到造成问题的代码。 原文链接： https://www.infoq.com/news/2026/10/cloudflare-cpu-memory-profiling/"}