Newsgroup: it.comp.hardware
Titolo: Quanto veloce riesce a contare un pc?

Strana domanda, ï¿œ una mia curiositï¿œ, ma quanto veloce riesce a contare 
un moderno computer desktop (intel core duo o i7 o athlon x4)?
Non intendo i GigaFlops (che son il numero di operazioni in virgola 
mobile), ma solo quanti numeri riesce a contare un pc in un secondo 
partendo da 0 e via in sequenza, 1, 2, 3 etc etc (o partendo da un 
numero a caso e proseguendo comunque in sequenza).
C'ï¿œ un modo per saperlo?
-- 
--------------------------------------------------------
http://www.flickr.com/photos/galerio/
ogni commento e critica son graditi!!!
-------------------------------------------------------
Iscriviti anche tu al gruppo Facebook di
appassionati di fotografia digitale:
http://www.facebook.com/group.php?gid=28645424291
---------------------------------------------------------------

 C'� un modo per saperlo?
Dipende se e come tu vuoi avere la percezione di questo conteggio.
Cio�, se gli fai incrementare una variabile senza fare altro opera ad una 
velocit� elevatissima.
Se deve anche visualizzare il conteggio entrano in gioco altri fattori. 

 C'ï¿œ un modo per saperlo?
Certo.
bye,
-- 
piergiorgio

 C'� un modo per saperlo?
Non credo.
Puoi provare con un linguaggio di programmazione ad incrementare una
variabile, ma vedrai che a seconda del linguaggio i risultati saranno
diversi.
Dovresti farlo in assembler allora.
In vb2005 un codice del genere impiega 2.5 secondi su un AMD @2.88Ghz e
circa 6 secondi a 1.2Ghz.
        Const MAX As Integer = 10 ^ 9
        Dim a As Integer
        Dim t As Date = Now
        For i As Integer = 1 To MAX
            a = a + 1
        Next
        Debug.Print((Now - t).ToString)
Ma fa molto pi� che incrementare una somma, facendo un iterazione di
1mld di volte per incrementare una variabile.
Basta poi spostare la variabile a fuori dalla routine che peggiora di un
30%.
-- 
Freccia@Bulldozer63 :D

 Se deve anche visualizzare il conteggio entrano in gioco altri fattori.
no, deve solo contare, senza visualizzare nulla


 bye,


 30%.
:/ due secondi e mezzo per contare fino a 1 miliardo perï¿œ mi sembrano 
troppo tanti con 2,88GHz di processore. Mi sa che hai proprio ragione e 
conta molto il linguaggio utilizzato.


 circa 6 secondi a 1.2Ghz.
Per curiosit� ho provato a fare un semplice programmino console in delphi
program Project2;
{$APPTYPE CONSOLE}
uses
	SysUtils;
var
	dData: TTimeStamp;
	i, iMax: Cardinal;
begin
	iMax := High(Cardinal);
	dData := DateTimeToTimeStamp(Now);
	for i := 0 to iMax do;
	write((DateTimeToTimeStamp(Now).Time - dData.Time)/1000);
	readln;
end.
Il Cardinal � un tipo di dati che va da 0 a 4.294.967.295
Sul mio PC (portatile dual core 2.4Ghz) ci mette 1,734 secondi.
-- 
Jax

 program Project2;
[cut]
Il compilatore si dovrebbe accorgere che il loop � vuoto ed assegnare alla
variabile direttamente il valore finale.
Forse hanno risparmiato questa ottimizzazione dato che un loop vuoto ha un 
utilit� praticamente nulla.
:-)

 sequenza, 1, 2, 3
Credo che tu possa considerare 1 incremento al clock, quindi se hai un PC 
che va a 2800Mhz in un secondo riesci a contare fino a 2 800 000 000. 
Sbaglio? 

Fedewiico ci ha detto :

ï¿œ quello che pensavo anche io, ma poi ho visto che quando si parla di 
megaflops, i numeri son molto superiori alla frequenza di clock.


 megaflops, i numeri son molto superiori alla frequenza di clock.
Perche` in certe circostanze la CPU puo` eseguire piu`
istruzioni nello stesso ciclo di clock.
Oppure perche` tratta vettori, quindi ogni istruzione
"processa" piu` dati in parallelo.
bye,
-- 
piergiorgio

 "processa" piu` dati in parallelo.
Esatto, possono entrare in gioco "pattern" di programmazione che permettono 
di usare in modo +efficente la cpu.
Per la domanda in oggetto, non credo si possa considerare utilizzabile altro 
che un mero conto sequenziale. 



scusate allora io aggiugo una richiesta curiosa:
che operazione matematica devo fare per sapere il numero di 
combinazioni da verificare prima di trovare una password ? 
Ad esempio: Io sapevo che per essere sicuri di fare un "13" al 
totocalcio, bisognava giocare il numero di colonne "3 alla 13" cio� il 
risultato di una potenza che ha come base il numero dei possibili 
risultati pewr ogni singola partita (1 x 2) cio� 3 risultati e come 
esponente il numero di partite cio� 13.
Vale lo stesso per una password?
-- 
|X|O|O|
|O|X|X|
|X|X|O|
" Is a strange game.
The only winning move is not to play "

 :-)
Sï¿œ, lo pensavo anch'io, infatti sono rimasto sopreso, anche perchï¿œ 
l'ottimizzatore di Delphi rimuove addirittura le variabili che non sono 
utilizzate.
-- 
Jax

 Vale lo stesso per una password?
Certo. Il numero di possibili combinazioni � pari al numero di combinazioni
di ogni singolo carattere elevato al numero di caratteri. es. password di 10
caratteri alfanumerici, le combinazioni sono 31 elevato alla 10.
31 se consideriamo le lettere standard dell'alfabeto + i 10 numeri...ma se
consideriamo anche K,X,Y,Z e magari anche lettere maiuscole e
minuscole....altro che 31 !
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/


sarebbero 25 per le lettere minuscole+25 per le lettere maiuscole+10 
per i numeri cioe 60 alla 'n' potenza dove 'n' � il numero di caratteri 
usato
Quanto impega allora un I7 965 (in attesa del Fujitsu Venus 
http://gizmodo.com/5253814/fujitsu-venus-claims-worlds-fastest-
processor-title-but-its-not-for-you) a trovare una password di 18 
caratteri consentendo di lettere minuscole e maiuscole dell'alfabeto 
inglese e numeri? Parole non trovabili su dizionari.
E se aggiungessimo simboli?  


 E se aggiungessimo simboli?  
Il conto e` sempre lo stesso: spazio dei simboli^numero simboli usati.
bye,
-- 
piergiorgio

 utilizzate.
quello che il compilatore fa ï¿œ semplicemente riportare la presenza di variabili inutilizzate
la definizione di una variabile indica solo al compilatore quanta memoria riservare ad essa quando verrï¿œ usata... se la variabile non ï¿œ usata il compilatore la ignora comunque (a meno che non sia una dichiarazione con assegnamento)
-- 
bye
main(){printf("%u\n",!(!1|1));}

 sarebbero 25 per le lettere minuscole+25 per le lettere maiuscole+10 
le lettere dell'alfabeto italiano sono 21 + jkwxy sono 26


 
a me la Juve mi frega...:-)
meglio ancora
-- 
|X|O|O|
|O|X|X|
|X|X|O|
"A strange game.
The only winning move is not to play 
How about a nice game of chess"