intermediate45 minLección 4 de 6

Optimización de Rendimiento y Caché

Optimiza OpenCode para velocidad y eficiencia de costos. Aprende estrategias de caché, optimización de tokens, selección de modelos y cómo reducir llamadas a la API manteniendo la calidad.

Optimización de Rendimiento y Caché

¿Por Qué Optimizar?

MétricaImpacto
Tiempo de RespuestaFlujo de trabajo de desarrollo más rápido
Uso de TokensCostos de API más bajos
CalidadMejores resultados con menos sobrecarga
EscalabilidadManejar proyectos más grandes

Optimización de Tokens

Entendiendo los Tokens

Los tokens son las unidades básicas que procesan los LLMs:

ContenidoTokens Aproximados
1 palabra1-2 tokens
1 línea de código5-15 tokens
1 archivo (100 líneas)500-1500 tokens

Reducir Uso de Tokens

  1. Limpiar conversación regularmente:
> /clear
  1. Ser específico en los prompts:
❌ "Fix the bug" ✅ "Fix the ZeroDivisionError in calculate_average() when list is empty"
  1. Leer solo archivos relevantes:
❌ "Read all files in src/" ✅ "Read src/utils.py"
  1. Usar grep antes de leer:
> Search for "TODO" in src/ before reading entire files

Estrategia de Selección de Modelos

TareaModeloRazón
Preguntas simplesgpt-4o-miniRápido, económico
Generación de códigogpt-4oEquilibrado
Razonamiento complejoclaude-sonnet-4-20250514Alta calidad
Revisión de códigoclaude-sonnet-4-20250514Análisis exhaustivo
Ediciones rápidasgpt-4o-miniVelocidad

Configuración

json
{ "agents": { "quick": { "model": "gpt-4o-mini", "description": "Simple tasks, fast responses" }, "complex": { "model": "gpt-4o", "description": "Complex tasks, high quality" } } }

Estrategias de Caché

Caché de Contenido de Archivos

Almacena en caché archivos frecuentemente accedidos:

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 content

Caché de Prompts

Reutiliza plantillas de prompts:

json
{ "skills": { "code-review": { "prompt_template": "Review this code for security issues: {code}" } } }

Caché de Resultados

Almacena en caché respuestas de IA para consultas repetidas:

json
{ "cache": { "enabled": true, "ttl": 3600, "maxSize": 1000 } }

Procesamiento por Lotes

Procesar Múltiples Archivos

En lugar de:

> Read file1.py > Read file2.py > Read file3.py

Usa:

> Read all Python files in src/ and summarize their purposes

Solicitudes Paralelas

json
{ "performance": { "parallelRequests": true, "maxConcurrent": 3 } }

Gestión de la Ventana de Contexto

Monitorear Tamaño del Contexto

> /verbose Context: 4523 tokens (15% of 32k limit)

Optimizar Contexto

  1. Limpiar historial al cambiar de tema
  2. Leer solo archivos necesarios
  3. Resumir conversaciones largas
  4. Usar subagentes para tareas aisladas

Optimización de Red

Agrupación de Conexiones

json
{ "providers": { "openai": { "keepAlive": true, "maxConnections": 5 } } }

Agrupación de Solicitudes

json
{ "performance": { "batchRequests": true, "batchSize": 10 } }

Monitoreo de Rendimiento

Rastrear Métricas

json
{ "logging": { "performance": true, "tokenUsage": true, "responseTime": true } }

Analizar Registros

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

  • Limpia la conversación regularmente para reducir el tamaño del contexto
  • Sé específico en los prompts para minimizar el uso de tokens
  • Usa gpt-4o-mini para tareas simples, gpt-4o para las complejas
  • Almacena en caché archivos accedidos frecuentemente y plantillas de prompts
  • Monitorea el uso de tokens, tiempo de respuesta y costos
  • Procesa múltiples archivos por lotes en lugar de leer uno por uno
  • La optimización de red reduce la latencia para llamadas a la API
Progreso67%