Cloudflareは、ワーカーとデュラブルオブジェクトにオンデマンドのCPUとメモリのプロファイリングを導入し、開発者がインタラクティブなフレームグラフを使用して本番環境のパフォーマンスのボトルネックを調査できるようにしました。 2026 年 10 月 9 日に発表されたこの機能は、Workers Observability ダッシュボードまたは cf CLI を通じてインタラクティブなフレームグラフを生成し、チームがログや集計メトリックのみに依存せずに高価な機能とメモリ割り当てを特定できるようにします。
開発者は、デプロイされたワーカー バージョンの CPU またはヒープ割り当てプロファイルをキャプチャし、その結果をフレームグラフとして検査できます。フレームグラフでは、より広いセクションが、CPU 時間またはサンプリングされたメモリ割り当てのより大きなシェアを担う関数を示します。プロファイルをダウンロードしてオフライン分析することもできます。
主な違いは、プロファイリングは新しい分離を開始するのではなく、すでに実行されている分離をターゲットにすることです。これにより、開発者は実際の運用トラフィックの下で実行されるコードを調べることができます。永続オブジェクトは、特定の名前付きインスタンスのプロファイリングに対する追加サポートを受け取ります。これは、ステートフル ワークロードに関連する問題を調査するときに役立ちます。ただし、ターゲットはキャプチャ ウィンドウ中に十分なトラフィックを受信する必要があり、TypeScript 開発者はソース マップを有効にして関数名を解釈しやすくする必要があります。
実装では、Cloudflareの分散エッジインフラストラクチャ全体で実行されるワーカーを考慮する必要があり、スクリプトにはデータセンターと物理マシン間で複数の分離が含まれる可能性があります。したがって、プロファイリング リクエストでは、リクエストされたワーカーのバージョンを特定し、適切なアクティブな分離を見つける必要があります。永続オブジェクトはステートフルであり、場所間を移動できるため、別の課題が追加されます。 Cloudflareは、プロファイリングリクエストを特定のオブジェクトをホストするマシンにルーティングします。
ランタイムは、キャプチャ全体の分離ロックを保持しません。 CPU プロファイリングの場合、1 ミリ秒間隔でサンプリングする V8 プロファイラーを開始し、リクエストの実行が継続している間にロックを解放し、プロファイリングを停止して結果を収集するためにロックを再取得します。これにより、プラットフォームはキャプチャ中に通常のリクエスト処理を中断することなく、ライブ実行を監視できるようになります。
CPU とメモリのプロファイルもさまざまな質問に答えます。 CPU プロファイリング サンプルはコール スタックを使用して実行時間がどこに費やされているかを明らかにし、高価な関数、冗長な計算、潜在的な最適化の機会を特定するのに役立ちます。対照的に、メモリ プロファイリングは、関数に関連する割り当てを強調表示し、開発者が過剰なオブジェクトを作成したり、メモリ負荷の原因となっているコードを見つけたりするのに役立ちます。
これは、パフォーマンスの問題を診断するときに重要です。ある関数は多くのメモリを割り当てずに大量の CPU を消費する可能性がある一方で、別の関数は実行時間を支配することなく大量の割り当てを生成する可能性があります。適切なプロファイルを調べることは、関連するリソースのボトルネックに調査を絞り込むのに役立ちます。
Cloudflareは、この機能を内部で使用して、不必要な計算とメモリ消費を特定しました。 R2 バインディング ワーカーをプロファイリングすると、入れ子になったデータを繰り返し走査し、関数に冗長な作業を実行させる再帰的な JSON 置換が判明しました。実装を修正すると、2.7 倍高速になったと言われています。別のプロファイルでは、CPU 時間の約 1% を占める不要な重複したメトリクス呼び出しが明らかになりました。
メモリ プロファイリングにより、部分的に無効化された Prometheus インストルメンテーションが依然として大量のメモリを消費しているという別の問題が特定されました。 Cloudflareは、残りのコードを削除すると、ワーカーの99.9パーセンタイルのメモリ使用量が133MBから118MBに減少し、128MBの制限を下回ったと主張している。
Cloudflareの製品は、確立されたツールを置き換えるのではなく、それを補完します。 Chrome DevTools はローカル CPU プロファイリングをサポートしているため、開発中に役立ちますが、本番環境のトラフィックとデータを再現するのは困難な場合があります。 pprof は Go やその他のサポートされているプロファイリング ワークフローで広く使用されており、強力なオフライン プロファイル分析を提供します。 Cloudflareでは、ダウンロードしたプロファイルをpprofで検査することもできます。その主な差別化要因は、プラットフォームの既存の操作インターフェイスを通じて、ライブ ワーカーおよび永続オブジェクトに対するプロファイリングを開始できることです。
この機能は、ログ、メトリクス、分散トレースも補完します。これらのツールは、サービスが遅いときや過剰なリソースを消費しているときを特定するのに役立ち、プロファイルは原因となっている機能を正確に特定するのに役立ちます。これらを組み合わせることで、アプリケーションの動作のより完全な全体像が得られます。
オンデマンド キャプチャは継続的な監視ではありません。短いプロファイリング ウィンドウでは断続的な問題を見逃す可能性がありますが、ヒープ プロファイルは保持されているメモリの全体像を提供するのではなく、キャプチャ中に割り当てを記録します。 Cloudflareは、継続的なプロファイリングに取り組んでおり、これにより、稀なパフォーマンスの問題がいつ発生するかを予測することなく、調査が容易になる可能性があると述べている。
Cloudflare Workersで実稼働ワークロードを実行しているチーム向けに、このリリースでは実用的なデバッグ機能が追加されています。つまり、最初に問題をローカルで再現することなく、リソース負荷の検出から原因となるコードの特定に移行します。