Vorhandener Code funktioniert möglicherweise, ist aber ineffizient, was zu Leistungsengpässen führt. Beispiele für Code, der sich negativ auf die Leistung auswirken kann, sind ineffiziente Schleifen, unnötige Berechnungen und übermäßige Speicherzuweisungen.
Copilot-Chat kann Leistungs-Hotspots identifizieren und Umgestaltungsstrategien vorschlagen, z. B. das Optimieren von Datenstrukturen (z. B. die Verwendung von Hashmaps anstelle von Arrays), die Reduzierung redundanter Berechnungen und die Verbesserung der algorithmischen Effizienz. Außerdem können Zwischenspeicherungsmechanismen oder Parallelisierungsvorgänge empfohlen werden, um die Leistung zu verbessern.
Beispielszenario
Der folgende Python-Code gibt jede tausendste Primzahl bis zur zehntausendsten Primzahl an. Er enthält einen Timer und gibt an, wie lange der Code als letzte Zeile der Ausgabe ausgeführt wird. Das Programm benötigt bis zum Abschluss mehrere Sekunden.
import time
def is_prime(n):
if n <= 1:
return False
for i in range(2, n):
if n % i == 0:
return False
return True
def every_1000th_prime():
primes = []
num = 2
while len(primes) < 10000:
if is_prime(num):
primes.append(num)
num += 1
return [primes[i] for i in range(999, 10000, 1000)]
if __name__ == "__main__":
start_time = time.time()
primes = every_1000th_prime()
for prime in primes:
print(prime)
end_time = time.time()
elapsed_time = end_time - start_time
print(f"Time taken: {elapsed_time:.10f} seconds")
Beispielaufforderung
Optimize this code for performance
import time
def is_prime(n):
if n <= 1:
return False
for i in range(2, n):
if n % i == 0:
return False
return True
def every_1000th_prime():
primes = []
num = 2
while len(primes) < 10000:
if is_prime(num):
primes.append(num)
num += 1
return [primes[i] for i in range(999, 10000, 1000)]
if __name__ == "__main__":
start_time = time.time()
primes = every_1000th_prime()
for prime in primes:
print(prime)
end_time = time.time()
elapsed_time = end_time - start_time
print(f"Time taken: {elapsed_time:.10f} seconds")
Optimize this code for performance
Optimize this code for performance
Beispielantwort
Copilot schlägt vor, eine Siebfunktion zu verwenden, um die Primzahlen wesentlich effizienter zu generieren. Wenn du dieses Programm ausführst, wird es in einem Bruchteil einer Sekunde abgeschlossen.
Hinweis
Copilot-Chat Antworten sind nicht deterministisch, daher erhalten Sie möglicherweise eine andere Antwort als die hier gezeigte.
import time
def sieve_of_eratosthenes(limit):
sieve = [True] * (limit + 1)
sieve[0] = sieve[1] = False
for start in range(2, int(limit**0.5) + 1):
if sieve[start]:
for multiple in range(start*start, limit + 1, start):
sieve[multiple] = False
return [num for num, is_prime in enumerate(sieve) if is_prime]
def every_1000th_prime():
limit = 105000 # Higher than needed to ensure 10,000 primes
primes = sieve_of_eratosthenes(limit)
return [primes[i] for i in range(999, 10000, 1000)]
if __name__ == "__main__":
start_time = time.time()
primes = every_1000th_prime()
for prime in primes:
print(prime)
end_time = time.time()
elapsed_time = end_time - start_time
print(f"Time taken: {elapsed_time:.10f} seconds")