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

Do you need help?

A cosa dipende la velocità di un programma [poll]

a
alex_andrei13 (3800 points)
14 41 53
in Programmare in Python by (3.8k points)
recategorized by
Buongiorno, avrei una domanda da porvi. All'interno di un programma Python a cosa dipende la velocità di esecuzione? Ci sono una serie di comandi più veloci rispetto agli altri? I commenti rallentano il programma? Grazie a tutti!
### no choices found for poll!
654 views

6 Answers

S
Shilvio (1190 points)
0 1 4
by (1.2k points)
da diversi fattori, la complessità dello stesso per esempio, dal numero di cicli, condizioni e calcoli che deve eseguire e dall'ottimizzazione del codice e della logica dietro il codice
a
alex_andrei13 (3800 points)
14 41 53
by (3.8k points)
Grazie mille per la risposta
giordano_sannino (13650 points)
7 16 81
by (13.7k points)
Più è ottimizzato e più è veloce, quindi:

Evita di ripetere calcoli(magari metti il calcolo che devi fare oiu volte in una variabile e usa quelle).

Usa cicli solo se utili, se magari non ti serve più ciclare dopo aver trovato una certa condizione allora esci dal ciclo.

I commenti non rallentano in quanto non vengono eseguiti ma ignorati.

Fai una prova e vedi dove il tuo programma fa operazioni inutili o doppie e eliminale.
giordano_sannino (13650 points)
7 16 81
by (13.7k points)
Quindi devi guardare sia dove è ottimizzato a livello di codice (scrittura) che a livello di logica
a
alex_andrei13 (3800 points)
14 41 53
by (3.8k points)
L'utilizzo di molte istruzioni di variabili può rallentare, per cosi dire, il programma? Oppure è irrilevante?
giordano_sannino (13650 points)
7 16 81
by (13.7k points)
mhh, cosa intendi con istruzioni di variabili?
Marco Freddi (1420 points)
1 2 16
by (1.4k points)
I commenti non rallentano il programma, perchè non eseguiti.
Per il resto sì, alcuni comandi possono essere più veloci di altri, ma più che quello puoi accorciare in molti modi: ad esempio creando una variabile per un valore che altrimenti sarebbe calcolato ripetutamente in un ciclo o nel corso del programma; in caso di ricerca o analisi di un certo tipo in liste o simili strutture, usare un while con delle condizioni di stop al posto di un for che scorre magari inutilmente tutta la lista, nonostante la ricerca sia già completa; utilizzare bene if... else per evitare controlli non necessari, ecc.; in generale cercare di far eseguire al programma meno operazioni possibile e senza ripetizioni.
Spero di esserti stato utile! ;)
a
alex_andrei13 (3800 points)
14 41 53
by (3.8k points)
Grazie mille, sei stato molto chiaro
Rametto (4910 points)
3 4 25
by (4.9k points)
aggiungo anche un'altra informazione, i controlli non sprecano molta memoria. Quindi se puoi inserire delle strutture di controllo per evitare molte altre cose, come cicli inutili e roba simile
a
alex_andrei13 (3800 points)
14 41 53
by (3.8k points)
Quali sono le strutture di controllo?
andrea.sterbini (207920 points)
749 1267 2373
by (208k points)
E poi c'è sempre il profiler che ti fa vedere dove viene speso più tempo nell'esecuzione del programma e ti fa capire quale parte è inefficiente
andrea.sterbini (207920 points)
749 1267 2373
by (208k points)
Loriv3 (7970 points)
13 21 84
by (8.0k points)
La prima cosa che fa rallentare un programma è la logica dietro, una logica molto contorta del programma rende il tempo di esecuzione maggiore. Ad esempio, di solito i cicli con while sono molto più veloci rispetto ad altri tipi di cicli, ma questo solo in teoria perché il ciclo while certamente è più veloce, ma se in questo ciclo fai molte operazioni rischi di rallentare di parecchio l'esecuzione che può diventare anche maggiore rispetto a qualche altro collega che abbia usato ad esempio dei cicli for ma con una logica migliore
a
alex_andrei13 (3800 points)
14 41 53
by (3.8k points)
Grazie mille per la risposta!