Supponiamo di avere un telefono in grado di elaborare 1 milione di operazioni al secondo e un microcontrollore in grado di eseguire 1000.
C'è un modo per dire quante operazioni eseguite da una funzione o un blocco di codice è in esecuzione?
Ho una funzione e posso scriverla in modi diversi, un esempio non importa perché sto parlando di tutto il codice che potrei scrivere andando avanti in futuro. Mi piacerebbe sapere quante operazioni si stanno verificando per un blocco specifico. È possibile?
Se è importante, ci sono casi in cui posso scrivere codice in vari modi e ottenere lo stesso risultato:
for (var i:int;i<number;i++) {
// result
}
for (var property in object) {
// result is same as previous
}
for each (var value in object) {
// result is same as previous
}
Ancora una volta, il codice che ho scritto sopra non ha importanza perché non si tratta di quel codice!
Voglio sapere se c'è un modo per misurare ciò che ogni istruzione, blocco di codice o funzione costa in termini di operazioni.
Spero che forse ci sia un programma che fa parte del sistema operativo o che viene fornito con CPU Intel o AMD che posso eseguire quando eseguo il mio programma che, quando premo un pulsante, mi dirà quante operazioni erano appena stati eseguiti sulla CPU.
Risposta alla domanda duplicata:
La mia domanda è diversa dalla domanda di profilazione. Quando una CPU, GPU o APU (?) Dice che fa 1,4 teraflops e la mia applicazione può funzionare su quel o un microcontrollore che può eseguire 1000 flop voglio sapere se esiste un software che mi dice le operazioni (non il profilo il tempo prende per funzionare) su una dichiarazione, o un blocco di codice. In particolare, perché posso scrivere lo stesso codice in più modi, quindi conoscere queste informazioni è prezioso per me.