Cloudflare apresentou no dia 9 de outubro de 2026 uma ferramenta de profiling sob demanda de CPU e memória para Workers e Durable Objects. O recurso permite que desenvolvedores investiguem gargalos de performance em produção através de flamegraphs interativos, acessíveis via dashboard Workers Observability ou interface de linha de comando cf.
Como funciona o profiling
O profiling incide sobre isolates já em execução sob tráfego real de produção, não iniciando novos ambientes. Para Durable Objects, a plataforma permite perfilar instâncias nomeadas específicas, essencial para investigar problemas em cargas de trabalho stateful. Um requisito importante é que o isolate alvo receba tráfego suficiente durante a janela de captura. Desenvolvedores TypeScript devem habilitar source maps para melhor interpretação dos nomes de funções nos resultados.
Os flamegraphs apresentam seções mais largas para funções responsáveis por maior consumo de tempo de CPU ou alocações de memória amostradas. Os perfis podem ser baixados para análise offline.
Arquitetura distribuída
A implementação enfrenta desafios particulares devido à infraestrutura distribuída de Cloudflare. Um Worker pode possuir múltiplos isolates simultaneamente em diversos data centers e máquinas físicas. O sistema de profiling deve localizar uma versão de Worker específica e identificar um isolate ativo apropriado. Durable Objects adicionam complexidade por serem stateful e migrarem entre locais; requisições de profiling são roteadas para a máquina que hospeda o objeto específico.
Captura de perfil sem bloqueio
O runtime não mantém um lock de isolate durante toda a captura. No profiling de CPU, um profiler V8 amostra em intervalos de 1 milissegundo. O lock é liberado enquanto requisições continuam sendo processadas normalmente, sendo reacquirido apenas para encerrar a captura e coletar resultados. Essa abordagem permite observar execução ao vivo sem suspender operações normais.
Diferenças entre tipos de profiling
CPU profiling examina pilhas de chamadas para revelar onde o tempo de execução é gasto, identificando funções dispendiosas, computação redundante e oportunidades de otimização. Memory profiling, por sua vez, destaca alocações associadas a funções, ajudando encontrar código que cria objetos excessivos ou contribui a pressão de memória.
A distinção é importante: uma função pode consumir CPU significativa sem alocar muita memória, enquanto outra pode gerar alocações substanciais sem dominar o tempo de execução. Examinar o perfil apropriado reduz a investigação ao gargalo relevante.
Casos de uso interno da Cloudflare
A empresa utilizou a ferramenta internamente para identificar computação desnecessária e consumo de memória. O profiling de um Worker com binding R2 revelou um substituidor JSON recursivo que percorria repetidamente dados aninhados, causando trabalho redundante. Corrigir a implementação resultou em melhoria de 2.7 vezes na performance.
Outro perfil expôs uma chamada de métricas duplicada desnecessária responsável por aproximadamente 1% do tempo de CPU.
O profiling de memória identificou instrumentação Prometheus parcialmente desabilitada consumindo memória substancial. Remover o código restante reduziu o uso de memória no percentil 99.9 de 133 MB para 118 MB, trazendo o Worker abaixo do limite de 128 MB.
Complementaridade com ferramentas existentes
O oferecimento da Cloudflare complementa ferramentas estabelecidas sem substituí-las. Chrome DevTools suporta profiling de CPU local durante desenvolvimento, mas reproduzir tráfego e dados de produção permanece difícil. pprof, amplamente utilizado em Go e outros workflows de profiling, oferece análise poderosa offline. Cloudflare permite que perfis baixados sejam examinados com pprof.
O diferencial principal é a capacidade de iniciar profiling contra Workers e Durable Objects ao vivo através da interface operacional existente da plataforma. O recurso também complementa logs, métricas e distributed tracing, que ajudam identificar quando um serviço está lento ou consumindo recursos excessivos, enquanto o profiling pinponta as funções responsáveis.
Limitações e desenvolvimento futuro
O profiling sob demanda não constitui monitoramento contínuo. Janelas curtas de captura podem perder problemas intermitentes. Heap profiles registram alocações apenas durante a captura, não fornecendo visão completa de memória retida.
Cloudflare trabalha em direção a profiling contínuo, que poderia facilitar investigação de problemas de performance raros sem necessidade de antecipar quando ocorrem. Para equipes rodando cargas de trabalho em produção no Cloudflare Workers, o lançamento adiciona capacidade prática de debugging: transitando da detecção de pressão de recursos para identificação do código responsável, sem necessidade de reproduzir o problema localmente.










