Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Timeout hw 6

I
IvanoTiberi (440 points)
7 12 13
in HW6 by (440 points)
ciao, sto cercando di abbassare i tempi di esecuzione dell hw6  ma non riesco a venirne a capo neanche dopo vari cambiamenti , sapreste darmi qualche suggerimento su come migliorarli (ovviamente nessun codice) anche solo un'indirizzamento

inoltre mi sembrava ci fosse un metodo per vedere su spyder il tempo di esecuzione di una funzione , mettendolo all'inizio e poi alla fine della funzione e  farne la differenza per trovare il tempo. ho provato con timeit.deafault_timer ma non penso fosse quello  

grazie
290 views

2 Answers

simonemignanelli (2130 points)
1 2 22
by (2.1k points)

Il metodo più breve ed efficace, che utilizzo io senza importare nessuna libreria o runnare qualche comando da console, è semplicemente vedere il codice e controllare due semplici cose:

  • Variabili o cicli ripetuti che posso essere storati in una variabile
  • cicli ed operazioni che possono essere portati di fuori di un loop cosi che non vengano ripetute
  • controllare se esistono operazioni con una time complexity minore rispetto a quelle che sto utilizzando
  • controllare se esistono funzioni a cui passo molti argomenti (passare argomenti in funzioni rallenta il codice di moltissimo), quindi è bene farlo ma non eccessivamente, soprattutto dentro cicli
I
IvanoTiberi (440 points)
7 12 13
by (440 points)
grazie mille è già qualcosa su cui basarmi, giuro ne sto uscendo matto
Exyss (21510 points)
1 2 79
by (21.5k points)

Oltre ai suggerimenti di @simonemignanelli aggiungo che dovresti accerti di salvare l'immagine una sola volta dopo aver disegnato tutti i palazzi, visto che ogni salvataggio impiega circa il 90% del tempo del programma

I
IvanoTiberi (440 points)
7 12 13
by (440 points)
si questo l'avevo già notato facendo varie prove ma grazie comunque per il consiglio