PDA

View Full Version : [java] implementare un timer...


Maurizio XP
23-11-2003, 22:49
Salve, stò scrivendo 1 piccolo benchmark e mi serve 1 modo per dire quanto ci si ha impiegato a completare tutte le ricorsioni...

Molz
24-11-2003, 09:40
La funzione System.getCurrentMillis() t ritorna 1 long ke corrisponde ai millisecondi ke sono passati dal 1-1-1970.

Basta ke la fai prima e dopo del codice critico e fai la differenza

Maurizio XP
24-11-2003, 10:07
Grazie!!!

Cerco nella documentazione della libreria come implementarla:)

cn73
24-11-2003, 11:05
Originariamente inviato da Molz
La funzione System.getCurrentMillis() t ritorna 1 long ke corrisponde ai millisecondi ke sono passati dal 1-1-1970.

Basta ke la fai prima e dopo del codice critico e fai la differenza

esatto questo è il metodo da utilizzare...

Maurizio XP
24-11-2003, 11:14
Ok, funziona perfettamente.
Grazie a tutti.:)

Ora mi servono 2 cose:

1)un modo per far sì che usi al max la cpu
2)è possibile farlo eseguire in tutti gli ambienti senza installare la j2se della sun?

P.s. devo scrivere 1 minimo di documentazione, ma quando ho finito, vi va di provarlo?

cn73
24-11-2003, 11:37
1)Cerca su google "algoritmi banchmarking". Solitamente si usa il calcolo di alcune serie numeriche...
2)Come puoi eseguire un programma java senza il jre? Al limite puoi utilizzare dei tool tipo InstallAnyware che includono nel pacchetto di installazione il jre da te scelto. Oppure documentarti su come creare degli eseguibili, ma in quel modo limiti la tua piattaforma a Windows, e io lo voglio provare sul mio pc linux! ;)

Maurizio XP
24-11-2003, 11:56
1)nn ho capito come dovrei fare, ti spiego, così gli assegna al max il 50% della cpu sul mio pc... io vorrei che gliene assegnasse il 100% (visto da ctrl+alt+canc) da win xp

2)grazie, appena ho tempo provo. Posso creare diverse versioni per garantire la portatilità::);)

Molz
24-11-2003, 14:00
Prova ad aumentare la priorità del thread

Dovrebbe essere

Thread.setPriority(MAX_PRIORITY)

o una cosa del genere

Maurizio XP
24-11-2003, 20:52
il metodo è quello ma non ho capito come si usa, avete voglia di spiegarmelo?

Molz
25-11-2003, 08:29
Il metodo dice allo scheduler d dedicare + tempo x qel thread (sottoprocesso) ma in teoria vale solo x i thread nella JVM e qindi nn dovrebbe aiutarti grankè

Maurizio XP
28-11-2003, 00:15
SOno ancora in alto mare....

Non ho proprio capito come implementare la cosa.... help

xyz1
28-11-2003, 22:08
Ma mi sembra strano, perchè comunque ho visto che sul mio pc (win xp) quando faccio partire un programma java, si prende sempre il 100% del processore!!

Sei sicuro che il grafico del task manager sale sopra il 50%??????????????'
Ti spiego, con gli utlimi P4 (quelli vanno tipo con il doppio processore, anche se ne hai installato uno solo fisicamente) se non hai il service pack 1 riconosce solo una singola cpu e quindi non supera il 50% dell'utilizzo ;)

Fai un programma per numeri primi che vada in loop infinito e vedi cosa succede!

CIAO

PS: io di solito per prendere i tempi uso Sistem.currenttimemillis() che cmq dovrebbe essere identico a quello che ti hanno detto prima. Restituisce infatti un long e facendo la differenza di end - start trovi il tempo impiegato in millisecondi!
dove start .....lo inizializzii appena prina di far partire il ciclo / ricorsione
end ..... lo inizializzi appena finito il calcolo

Maurizio XP
29-11-2003, 00:52
sì sì ho p4 ht e sp1, 2 cpu rilevate;)

xyz1
29-11-2003, 01:04
e allora penso che il problema sia proprio quello!

prova su un'altra macchina, altrimenti il consiglio che ti dò è quello di provare ad aggiornare tutti i pacchetti java.......

cmq il p4 dovrebbe essere Hiperfreding (o come cavolo si scrive!) :P
sono very ignurante in inglese :oink:

CIAO