Voltar as noticias
Benchmark de Ferramentas de Busca de Código: Conhecendo o Desempenho
Casos de UsoMediaEN

Benchmark de Ferramentas de Busca de Código: Conhecendo o Desempenho

Dev.to - MCP·25 de maio de 2026

codegraph tem 19.459 estrelas no GitHub. Nós temos zero. Então paramos de falar e começamos a medir.

A Manchete

Sistema P@10 Consulta k8s Tempo até a consistência Estrelas
knowing 0.207 2ms 167ms 0
codegraph 0.135 ~1s 805ms 19.459
GitNexus 0.075 612ms minutos -
Gortex 0.063 ~6s minutos -
Aider - ~3s 3.150ms (tempo esgotado) ~20K
codebase-memory - 2.900ms N/A (tempo esgotado) 2.600
grep 0.013 instantâneo instantâneo N/A

P@10 = fração dos 10 melhores resultados que são relevantes para a tarefa. Quanto maior, melhor.

knowing é 1.53x mais preciso que codegraph (19K estrelas, tree-sitter + FTS5).
knowing é 2.76x mais preciso que GitNexus (grafo de conhecimento MCP).
knowing é 3.29x mais preciso que Gortex (motor de grafo Go, 256 linguagens).
knowing é 15.9x mais preciso que grep.

Por que 19K Estrelas Não Significam Nada

codegraph usa tree-sitter + FTS5 + pontuação heurística (bônus de co-localização, correspondência de múltiplos termos, correspondência de limites CamelCase). Sem classificação teórica de grafos. Sem caminhada aleatória. Sem propagação estrutural.

knowing usa Random Walk com Reinício em um grafo de chamadas endereçado por conteúdo. A caminhada propaga relevância através da estrutura de dependência real: "esta função chama aquela, que implementa esta interface, que é testada por aqueles testes." Relevância estrutural, não coincidência de strings.

O resultado: codegraph encontra símbolos que contêm suas palavras-chave. knowing encontra símbolos que são estruturalmente relevantes para sua tarefa. Essas são frequentemente coisas diferentes.

Análise por Repositório

Repo Linguagem LOC knowing P@10 Tarefas
Flask Python 15K 0.332 19
Terraform Go 2M 0.275 20
Ocelot C# 30K 0.260 5
Kafka Java 500K 0.253 19
Cross-cutting Mix - 0.200 9
Django Python 300K 0.182 33
Spark Java 14K 0.180 5
Kubernetes Go 3.5M 0.153 19
VS Code TypeScript 1M 0.137 19
Cargo Rust 150K 0.132 19

Repositórios com hierarquias de classes bem estruturadas e documentação têm melhor desempenho (Flask 0.332, Terraform 0.275, Kafka 0.253). O FTS de docstring do knowing aproveita diretamente a documentação escrita pelos desenvolvedores como um sinal de recuperação, e a propagação de herança cria caminhos através das hierarquias de classes. Mesmo o repositório mais fraco (Cargo 0.132) supera o melhor do grep (0.013).

Latência de Consulta: 500x Mais Rápido em Repositórios Empresariais

codegraph consulta Kubernetes em cerca de 1 segundo (BM25, sem caminhada de grafo). knowing com seu cache de adjacência pré-computado: 2 milissegundos. Isso é 500x mais rápido.

Métrica knowing codegraph
consulta k8s (782K arestas) 2ms ~1s
Construção de cache (uma vez) 973ms N/A
Formato 65 bytes/aresta binário N/A

O cache é construído uma vez no tempo de indexação e carrega todo o grafo em uma leitura do SQLite. O RWR então roda inteiramente na memória. A melhoria de 4.717x (de 9s sem cache para 2ms com cache) é uma vantagem estrutural do cache endereçado por conteúdo: o mapa de adjacência é determinístico, então nunca precisa de invalidação, exceto na reindexação.

Tempo até a Consistência: Novo Código em 167ms

Você adiciona uma função. Quão rapidamente cada sistema a encontra?

Sistema Tempo total Encontrado?
knowing 167ms Sim (classificação 2)
codegraph 805ms Sim
Aider 3.150ms Não

Protocolo: injete validate_authentication_token() no Flask, acione reindexação incremental, consulte por ele.

O IndexFilesIncremental do knowing leva 16ms (constante, independentemente do tamanho do repositório). O sync do codegraph reescaneia todo o repositório (escala linearmente). O Aider reanalisa tudo em cada consulta e ainda não encontra a nova função.

Por que Aider fundamentalmente não pode encontrar novo código: Uma função recém-adicionada sem chamadores tem zero grau de entrada, então o PageRank atribui a ela peso mínimo. Ela nunca aparecerá nos resultados classificados até que outro código a chame. Isso significa que toda vez que você escreve uma nova função, o contexto do Aider é cego para ela. knowing a encontra por meio da correspondência de palavras-chave FTS, contornando a necessidade de conectividade de grafo.

Eficiência do Agente: 99.9% de Eliminação de Ruído

Em Kubernetes (3.5M LOC), um agente fazendo grep Handler obtém 1.284 correspondências. Para "Controller": 14.896 correspondências. O agente deve ler/filtrar todas elas.

knowing retorna 10 resultados classificados com 72% de taxa de acerto de verdade fundamental. codegraph retorna 28/50. GitNexus retorna 0 (não consegue lidar com k8s de forma alguma).

Sistema Verdade fundamental nos 10 melhores Ruído do Grep para filtrar
knowing 36/50 (72%) 10 resultados
codegraph 28/50 (56%) 3-20 resultados
GitNexus 0/50 0 (falha de escala)
grep N/A 10.840 por tarefa

A vantagem não é apenas a precisão. É que knowing entrega 10 resultados de 10.840 candidatos. Isso é 99.9% de eliminação de ruído antes que o agente veja qualquer coisa.

Determinismo: Mesma Pergunta, Mesma Resposta

Executamos a mesma tarefa 10 vezes por sistema.

Sistema Saídas únicas (10 execuções) Veredicto
knowing 1 DETERMINÍSTICO
codegraph 1 DETERMINÍSTICO
GitNexus 7-9 NÃO DETERMINÍSTICO
Aider 3 NÃO DETERMINÍSTICO

GitNexus dá uma resposta diferente quase toda vez que você pergunta. Aider varia moderadamente. Você não pode testar regressão em um sistema de contexto não determinístico. Você não pode depurar o comportamento do agente se o contexto mudar entre execuções.

O determinismo do knowing é estrutural: o PackRoot endereçado por conteúdo garante que a mesma entrada produza a mesma saída. Sempre.

O Panorama Completo dos Concorrentes

Benchmarkamos todas as ferramentas de recuperação de código que pudemos encontrar.

Contexto Triplo Up

O desempenho de ferramentas de busca de código pode impactar a produtividade das equipes de desenvolvimento no Brasil. A escolha da ferramenta certa pode reduzir o tempo de busca e aumentar a eficiência na entrega de projetos. Empresas que adotam soluções mais rápidas e precisas podem se destacar no mercado.

Noticias relacionadas

Gostou do conteudo?

Receba toda semana as principais novidades sobre WebMCP.