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

a
alex_andrei13 (3170 points)
11 37 49
asked Oct 19, 2020 in Programmare in Python by alex_andrei13 (3,170 points)
recategorized Oct 20, 2020 by andrea.sterbini
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!
366 views

6 Answers

S
Shilvio (1190 points)
0 1 3
answered Oct 19, 2020 by Shilvio (1,190 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 (3170 points)
11 37 49
commented Oct 20, 2020 by alex_andrei13 (3,170 points)
Grazie mille per la risposta
giordano_sannino (13650 points)
7 16 81
answered Oct 19, 2020 by giordano_sannino (13,650 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
commented Oct 19, 2020 by giordano_sannino (13,650 points)
Quindi devi guardare sia dove è ottimizzato a livello di codice (scrittura) che a livello di logica
a
alex_andrei13 (3170 points)
11 37 49
commented Oct 20, 2020 by alex_andrei13 (3,170 points)
L'utilizzo di molte istruzioni di variabili può rallentare, per cosi dire, il programma? Oppure è irrilevante?
giordano_sannino (13650 points)
7 16 81
commented Oct 20, 2020 by giordano_sannino (13,650 points)
mhh, cosa intendi con istruzioni di variabili?
Marco Freddi (1420 points)
1 2 16
answered Oct 19, 2020 by Marco Freddi (1,420 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 (3170 points)
11 37 49
commented Oct 20, 2020 by alex_andrei13 (3,170 points)
Grazie mille, sei stato molto chiaro
Rametto (4910 points)
3 4 25
answered Oct 19, 2020 by Rametto (4,910 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 (3170 points)
11 37 49
commented Oct 20, 2020 by alex_andrei13 (3,170 points)
Quali sono le strutture di controllo?
andrea.sterbini (172300 points)
510 927 1776
answered Oct 19, 2020 by andrea.sterbini (172,300 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 (172300 points)
510 927 1776
commented Oct 19, 2020 by andrea.sterbini (172,300 points)
Loriv3 (7970 points)
8 20 84
answered Oct 20, 2020 by Loriv3 (7,970 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 (3170 points)
11 37 49
commented Oct 20, 2020 by alex_andrei13 (3,170 points)
Grazie mille per la risposta!