intermediate⏱45 minLição 4 de 6
Otimização de Performance e Cache
Otimize o OpenCode para velocidade e eficiência de custos. Aprenda estratégias de cache, otimização de tokens, seleção de modelos e como reduzir chamadas de API mantendo a qualidade.
Otimização de Performance e Cache
Por que Otimizar?
| Métrica | Impacto |
|---|---|
| Tempo de Resposta | Fluxo de trabalho de desenvolvimento mais rápido |
| Uso de Tokens | Custos de API mais baixos |
| Qualidade | Melhores resultados com menos sobrecarga |
| Escalabilidade | Lidar com projetos maiores |
Otimização de Tokens
Entendendo Tokens
Tokens são as unidades básicas que os LLMs processam:
| Conteúdo | Tokens Aproximados |
|---|---|
| 1 palavra | 1-2 tokens |
| 1 linha de código | 5-15 tokens |
| 1 arquivo (100 linhas) | 500-1500 tokens |
Reduzir Uso de Tokens
- Limpe a conversa regularmente:
> /clear
- Seja específico nos prompts:
❌ "Fix the bug"
✅ "Fix the ZeroDivisionError in calculate_average() when list is empty"
- Leia apenas arquivos relevantes:
❌ "Read all files in src/"
✅ "Read src/utils.py"
- Use grep antes de ler:
> Search for "TODO" in src/ before reading entire files
Estratégia de Seleção de Modelo
| Tarefa | Modelo | Motivo |
|---|---|---|
| Perguntas simples | gpt-4o-mini | Rápido, barato |
| Geração de código | gpt-4o | Equilibrado |
| Raciocínio complexo | claude-sonnet-4-20250514 | Alta qualidade |
| Revisão de código | claude-sonnet-4-20250514 | Análise minuciosa |
| Edições rápidas | gpt-4o-mini | Velocidade |
Configuração
json
{
"agents": {
"quick": {
"model": "gpt-4o-mini",
"description": "Simple tasks, fast responses"
},
"complex": {
"model": "gpt-4o",
"description": "Complex tasks, high quality"
}
}
}Estratégias de Cache
Cache de Conteúdo de Arquivo
Armazene em cache arquivos acessados frequentemente:
python
# Pseudo-code for caching
file_cache = {}
def read_file(path):
if path in file_cache:
return file_cache[path]
content = read_from_disk(path)
file_cache[path] = content
return contentCache de Prompts
Reutilize templates de prompts:
json
{
"skills": {
"code-review": {
"prompt_template": "Review this code for security issues: {code}"
}
}
}Cache de Resultados
Armazene em cache respostas de IA para consultas repetidas:
json
{
"cache": {
"enabled": true,
"ttl": 3600,
"maxSize": 1000
}
}Processamento em Lote
Processar Múltiplos Arquivos
Em vez de:
> Read file1.py
> Read file2.py
> Read file3.py
Use:
> Read all Python files in src/ and summarize their purposes
Requisições Paralelas
json
{
"performance": {
"parallelRequests": true,
"maxConcurrent": 3
}
}Gerenciamento da Janela de Contexto
Monitore o Tamanho do Contexto
> /verbose
Context: 4523 tokens (15% of 32k limit)
Otimize o Contexto
- Limpe o histórico ao mudar de tópico
- Leia apenas arquivos necessários
- Resuma conversas longas
- Use subagentes para tarefas isoladas
Otimização de Rede
Pool de Conexões
json
{
"providers": {
"openai": {
"keepAlive": true,
"maxConnections": 5
}
}
}Agrupamento de Requisições
json
{
"performance": {
"batchRequests": true,
"batchSize": 10
}
}Monitoramento de Performance
Rastrear Métricas
json
{
"logging": {
"performance": true,
"tokenUsage": true,
"responseTime": true
}
}Analisar Logs
bash
# Find slow requests
grep "response_time" opencode.log | awk '{print $NF}' | sort -n
# Calculate average tokens
grep "total_tokens" opencode.log | awk '{sum+=$NF} END {print sum/NR}'Practice Questions
Practice Question
What is the most effective way to reduce token usage?
Practice Question
Which model is best for quick, simple tasks?
Practice Question
How does caching improve performance?
Practice Question
What should you monitor to track performance?
Practice Question
How do you reduce context window usage?
Success
Key Takeaways
- Limpe a conversa regularmente para reduzir o tamanho do contexto
- Seja específico nos prompts para minimizar o uso de tokens
- Use gpt-4o-mini para tarefas simples, gpt-4o para complexas
- Armazene em cache arquivos acessados frequentemente e templates de prompts
- Monitore uso de tokens, tempo de resposta e custo
- Processe múltiplos arquivos em lote em vez de ler um de cada vez
- A otimização de rede reduz a latência para chamadas de API
Progresso67%