{"meta":{"title":"Refactorización para la optimización del rendimiento","intro":"El Chat de Copiloto puede sugerir distintas formas de acelerar el código de ejecución lenta.","product":"GitHub Copilot","breadcrumbs":[{"href":"/es/copilot","title":"GitHub Copilot"},{"href":"/es/copilot/tutorials","title":"Tutoriales"},{"href":"/es/copilot/tutorials/copilot-chat-cookbook","title":"Guía de GitHub Copilot Chat"},{"href":"/es/copilot/tutorials/copilot-chat-cookbook/refactor-code","title":"Refactorizar código"},{"href":"/es/copilot/tutorials/copilot-chat-cookbook/refactor-code/refactor-for-optimization","title":"Refactorización para la optimización"}],"documentType":"article"},"body":"# Refactorización para la optimización del rendimiento\n\nEl Chat de Copiloto puede sugerir distintas formas de acelerar el código de ejecución lenta.\n\nEl código existente puede funcionar correctamente pero ser ineficiente, lo que da lugar a problemas de rendimiento. Algunos ejemplos de codificación que pueden afectar negativamente al rendimiento son bucles ineficaces, cálculos innecesarios y asignación de memoria excesiva.\n\nEl Chat de Copiloto puede identificar las zonas de rendimiento intensivo y sugerir estrategias de refactorización, como la optimización de las estructuras de datos (por ejemplo, el uso de mapas hash en lugar de matrices), la reducción de cálculos redundantes y la mejora de la eficacia algorítmica. También puede recomendar mecanismos de almacenamiento en caché u operaciones de paralelización para mejorar el rendimiento.\n\n## Escenario de ejemplo\n\nEl siguiente código de Python imprime cada número primo 1000 hasta el primo 10 000. Incluye un temporizador e imprime el tiempo que el código tarda en ejecutarse como última línea de la salida. El programa tarda varios segundos en completarse.\n\n```python id=slow-prime\nimport time\n\ndef is_prime(n):\n    if n <= 1:\n        return False\n    for i in range(2, n):\n        if n % i == 0:\n            return False\n    return True\n\ndef every_1000th_prime():\n    primes = []\n    num = 2\n    while len(primes) < 10000:\n        if is_prime(num):\n            primes.append(num)\n        num += 1\n    return [primes[i] for i in range(999, 10000, 1000)]\n\nif __name__ == \"__main__\":\n    start_time = time.time()\n    primes = every_1000th_prime()\n    for prime in primes:\n        print(prime)\n    end_time = time.time()\n    elapsed_time = end_time - start_time\n    print(f\"Time taken: {elapsed_time:.10f} seconds\")\n```\n\n## Ejemplos de indicaciones\n\n```copilot copy prompt ref=slow-prime\nOptimize this code for performance\n```\n\n## Respuesta de ejemplo\n\nCopilot sugiere usar una función de criba para generar los números primos con mucha más eficacia. Si ejecutas este programa, se completará en una fracción de segundo.\n\n> \\[!NOTE] Las respuestas de Chat de Copiloto no son deterministas, por lo que puedes obtener una respuesta diferente a la aquí mostrada.\n\n```python\nimport time\n\ndef sieve_of_eratosthenes(limit):\n    sieve = [True] * (limit + 1)\n    sieve[0] = sieve[1] = False\n    for start in range(2, int(limit**0.5) + 1):\n        if sieve[start]:\n            for multiple in range(start*start, limit + 1, start):\n                sieve[multiple] = False\n    return [num for num, is_prime in enumerate(sieve) if is_prime]\n\ndef every_1000th_prime():\n    limit = 105000  # Higher than needed to ensure 10,000 primes\n    primes = sieve_of_eratosthenes(limit)\n    return [primes[i] for i in range(999, 10000, 1000)]\n\nif __name__ == \"__main__\":\n    start_time = time.time()\n    primes = every_1000th_prime()\n    for prime in primes:\n        print(prime)\n    end_time = time.time()\n    elapsed_time = end_time - start_time\n    print(f\"Time taken: {elapsed_time:.10f} seconds\")\n```\n\n## Información adicional\n\n* [Ingeniería de mensajes para GitHub Copilot Chat](/es/copilot/using-github-copilot/prompt-engineering-for-github-copilot)\n* [Procedimientos recomendados para usar GitHub Copilot](/es/copilot/using-github-copilot/best-practices-for-using-github-copilot)"}