Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
HONOR Magic V6 è arrivato in Italia a 2.299,90 euro con una promessa precisa: unire 4 mm di spessore da aperto (8,75 mm chiuso nel modello White, 9 mm negli altri colori) a una batteria da 6.660 mAh, la più capiente mai vista su un pieghevole. Lo abbiamo usato per oltre una settimana in versione Red 16/512 GB per capire se lo Snapdragon 8 Elite Gen 5 tiene testa alla concorrenza anche fuori dai benchmark ufficiali
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7 punta su un display ampio e fluido, una batteria capace di accompagnare l'uso quotidiano senza ansie da ricarica e un prezzo accessibile, a partire da 179,90 euro per la versione con 64 GB di storage. Lo Snapdragon 6s 4G Gen 2 e i 4 GB di RAM della configurazione più diffusa frenano però chi cerca reattività e multitasking spinto: ecco il bilancio dopo due settimane di prova diretta
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-04-2006, 13:29   #1
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 7152
[C++] Tempo di esecuzione

Vorrei vedere quanto tempo impiega una funzione a fare il suo lavoro. A tal proposito, nel corpo della funzione, come prima istruzione ho messo:

clock_t tempoesecuzione;
tempoesecuzione = clock();

e come ultima:

String a=(String)(tempoesecuzione/CLK_TCK);

Pero' mi viene un numero che non corrisponde ai secnodi trascorsi. Dove è l'errore? Grazie.
Unrue è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2006, 14:01   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da Unrue
Vorrei vedere quanto tempo impiega una funzione a fare il suo lavoro. A tal proposito, nel corpo della funzione, come prima istruzione ho messo:

clock_t tempoesecuzione;
tempoesecuzione = clock();

e come ultima:

String a=(String)(tempoesecuzione/CLK_TCK);

Pero' mi viene un numero che non corrisponde ai secnodi trascorsi. Dove è l'errore? Grazie.
No, al massimo una cosa del genere:
Codice:
#include <time.h>

....

clock_t t1, t2;
double  tempo;

t1 = clock ();

....codice da misurare....

t2 = clock ();

tempo = ((double) (t2 - t1)) / CLOCKS_PER_SEC;
Nota, è da testare.
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2006, 14:27   #3
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 7152
Quote:
Originariamente inviato da andbin
No, al massimo una cosa del genere:
Codice:
#include <time.h>

....

clock_t t1, t2;
double  tempo;

t1 = clock ();

....codice da misurare....

t2 = clock ();

tempo = ((double) (t2 - t1)) / CLOCKS_PER_SEC;
Nota, è da testare.

Funziona! Pero' non ho capito: clock() mi da' il tempo di inizio della funzione?Nel senso: parte da 0 e poi, quando lo catturo mi da' il tempo trascorso?O mi da' il tempo di sistema? Quindi sbagliavo in quanto mi serviva anche il tempo di fine. Infatti fai la differenza tra i due. Grazie
Unrue è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2006, 14:43   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da Unrue
Pero' non ho capito: clock() mi da' il tempo di inizio della funzione?Nel senso: parte da 0 e poi, quando lo catturo mi da' il tempo trascorso?O mi da' il tempo di sistema?
La documentazione su linux non è chiarissima, quindi ho fatto delle prove pratiche. Quando il processo parte, clock vale 0 e si incrementa man mano che il processo consuma il tempo di CPU.
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2006, 14:46   #5
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 7152
Quote:
Originariamente inviato da andbin
La documentazione su linux non è chiarissima, quindi ho fatto delle prove pratiche. Quando il processo parte, clock vale 0 e si incrementa man mano che il processo consuma il tempo di CPU.
Ok , adesso ho capito.Quindi non serve fare due chiamate a clock(), credo. Basta chiamarlo una volta sola e prendere il tempo. Ma va anche bloccato? Nel senso, Non si ferma fino a che non chiudo il programma?
Unrue è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2006, 16:57   #6
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da Unrue
Ok , adesso ho capito.Quindi non serve fare due chiamate a clock(), credo. Basta chiamarlo una volta sola e prendere il tempo.
Non so cosa devi fare di preciso, ma è buona cosa usare sempre 2 valori ed ottenere la differenza.

Quote:
Originariamente inviato da Unrue
Ma va anche bloccato? Nel senso, Non si ferma fino a che non chiudo il programma?
No, questo clock è un valore che si incrementa continuamente e quindi, tra l'altro, può anche "wrappare", in pratica ripartire da 0.
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2006, 19:48   #7
Qu@ker
Member
 
Iscritto dal: Apr 2004
Messaggi: 130
Codice:
jcd@big:~$ man clock | sed -ne '/^N^HNO/,+3p'
NOTES
       The C standard allows for arbitrary values at the start of the program;
       subtract  the value returned from a call to clock() at the start of the
       program to get maximum portability.
jcd@big:~$
Qu@ker è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2006, 19:18   #8
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 7152
Quote:
Originariamente inviato da andbin
Non so cosa devi fare di preciso, ma è buona cosa usare sempre 2 valori ed ottenere la differenza.

No, questo clock è un valore che si incrementa continuamente e quindi, tra l'altro, può anche "wrappare", in pratica ripartire da 0.
Mi hai detto che, quando chiami clock(),parte da 0. Quindi non capisco perchè serve chiamarlo, due volte. Alla seconda volta non riparte da 0? Mi tornerebbe fare la differenza se clock(), mi dà il tempo di sistema, quindi, richiamandolo una seconda volta e facendo la differenza ho il tempo trascorso.
Unrue è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2006, 10:53   #9
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da Unrue
Mi hai detto che, quando chiami clock(),parte da 0. Quindi non capisco perchè serve chiamarlo, due volte. Alla seconda volta non riparte da 0? Mi tornerebbe fare la differenza se clock(), mi dà il tempo di sistema, quindi, richiamandolo una seconda volta e facendo la differenza ho il tempo trascorso.
Io ho fatto delle prove su un sistema Linux (una Slackware 9.1):
Codice:
#include <stdio.h>
#include <time.h>

int main()
{
    clock_t c;

    c = clock ();
    printf ("%d\n", c);

    return 0;
}
In effetti, stampa 0.

Forse però non hai letto bene il post di Qu@ker. Nella pagina di man di clock c'è una nota importante. Una qualunque implementazione di clock non è obbligata a fornire un valore di 0 all'inizio del processo!!!!!! Potrebbe anche non essere così.
Ecco perché, per avere la massima portabilità, è necessario calcolare la differenza tra 2 valori. Solo in questo modo può eliminare eventuali "offset" del valore!
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2006, 11:05   #10
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 7152
Quote:
Originariamente inviato da andbin
Io ho fatto delle prove su un sistema Linux (una Slackware 9.1):
Codice:
#include <stdio.h>
#include <time.h>

int main()
{
    clock_t c;

    c = clock ();
    printf ("%d\n", c);

    return 0;
}
In effetti, stampa 0.

Forse però non hai letto bene il post di Qu@ker. Nella pagina di man di clock c'è una nota importante. Una qualunque implementazione di clock non è obbligata a fornire un valore di 0 all'inizio del processo!!!!!! Potrebbe anche non essere così.
Ecco perché, per avere la massima portabilità, è necessario calcolare la differenza tra 2 valori. Solo in questo modo può eliminare eventuali "offset" del valore!

Ok ora ho capito, grazie per i chiarimenti
Unrue è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere? Recensione HONOR Magic V6: spessore record e sup...
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Panasonic S45 e S55 in offerta da 189€: ...
Lefant M5 MAX crolla a 449€: rullo da 20...
Nuova Jeep Avenger elettrica: prima prov...
Le vere offerte sui portatili in Amazon:...
SK Hynix debutta a Wall Street con una r...
QuTech annuncia Tuna-17, un processore q...
Chat Control: il Parlamento europeo viet...
vivo Watch GT 2: stile, salute e autonom...
Il fix di Microsoft Defender è pe...
SentinelOne integra Prompt Security con ...
Ha fotografato Giove con una Game Boy Ca...
Sony RX10 V: tornano le fotocamere bridg...
OpenAI lancia ChatGPT Lavoro: l'agente c...
GPT-5.6 Sol 'asfalta' Claude Fable 5: Op...
Netflix ha ucciso la TV coi canali, ora ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:00.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v