Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
HUAWEI WiFi Mesh X3 Pro Suite è probabilmente il router mesh più fotogenico che si possa acquistare oggi in Italia, ma dietro il guscio in acrilico trasparente e le luci LED dinamiche c'è una macchina tecnica costruita attorno allo standard Wi-Fi 7, con velocità teoriche Dual-Band fino a 3,6 Gbps e una copertura fino a 120 m² una volta abbinato il router principale all'extender incluso nel kit
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Abbiamo provato le nuove CPU Intel Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: più core e ottimizzazioni al funzionamento interno migliorano le prestazioni, anche in virtù di prezzi annunciati interessanti. A questo si aggiungono nuove ottimizzazioni software. Purtroppo, a fronte di prestazioni di calcolo elevate, il quadro rimane incerto nel gaming, dove l'andamento rimane altalenante. Infine, rimane il problema della piattaforma a fine vita.
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
Il modello "build to order" di PCSpecialist permette di selezionare una struttura base per un sistema, personalizzandolo in base alle specifiche esigenze con una notevole flessibilità di scelta tra i componenti. Il modello Lafité 14 AI AMD è un classico notebook clamshell compatto e potente, capace di assicurare una elevata autonomia di funzionamento anche lontano dalla presa di corrente
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-02-2011, 20:54   #1
markz88
Junior Member
 
Iscritto dal: May 2007
Messaggi: 28
[c] Tempo di esecuzione di un algoritmo

Salve,
volevo chiedere come poter calcolare in C il tempo di esecuzione di un pezzo di programma, io ho adottato questo metodo:

Codice:
#include <time.h>

int main(){

clock_t inizio, fine;
double tempo;

inizio = clock();

/*pezzo di codice*/

fine = clock();

tempo = (double)(fine - inizio)/(double) CLOCKS_PER_SEC;

printf("Il tempo di esecuzione e': %f", tempo);

system("pause");
return 0;
}
ma il tempo è espresso in secondi, quando il tempo di esecuzione è minore del secondo il tempo stampato è 0.000000. Come potrei fare per calcolare il tempo di esecuzione in millisecondi per poter avere dei valori? Devo scrivere una relazione tenendo conto del tempo di esecuzione di alcuni algoritmi quindi non posso considerare lo 0. Come potrei fare? Conoscete un altro metodo?

Grazie
markz88 è offline   Rispondi citando il messaggio o parte di esso
Old 07-02-2011, 21:21   #2
Shinnok.Exor
Senior Member
 
L'Avatar di Shinnok.Exor
 
Iscritto dal: Jan 2008
Messaggi: 1056
Quote:
Originariamente inviato da markz88 Guarda i messaggi
Codice:
...
tempo = (double)(fine - inizio)/(double) CLOCKS_PER_SEC;
...
Beh se lo dividi per CLOCKS_PER_SEC certo che restituisce il tempo in secondi.
__________________
Apps Freeware made by me
Shinnok.Exor è offline   Rispondi citando il messaggio o parte di esso
Old 07-02-2011, 22:13   #3
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 12966
Sei sotto Windows o sotto Linux?

Sotto Windows ci sono le funzioni QueryPerformanceCounter e QueryPerformanceFrequency.

http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx

Ultima modifica di WarDuck : 07-02-2011 alle 22:16.
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 07-02-2011, 22:50   #4
GByTe87
Senior Member
 
L'Avatar di GByTe87
 
Iscritto dal: Mar 2007
Città: Milano Beach
Messaggi: 1696
Ti conviene inoltre eseguire "/*pezzo di codice*/" qualche centinaio di migliaia di volte, in modo da poter rilevare differenze apprezzabili.
__________________
~ Cthulhu: MacBookPro 13.3" ~ Azathoth: D510MO
GByTe87 è offline   Rispondi citando il messaggio o parte di esso
Old 08-02-2011, 09:57   #5
markz88
Junior Member
 
Iscritto dal: May 2007
Messaggi: 28
Quote:
Originariamente inviato da WarDuck Guarda i messaggi
Sei sotto Windows o sotto Linux?

Sotto Windows ci sono le funzioni QueryPerformanceCounter e QueryPerformanceFrequency.

http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx
Quale dovrei utilizzare tra le due funzioni? Non è che mi metteresti un esempio di codice...
markz88 è offline   Rispondi citando il messaggio o parte di esso
Old 09-02-2011, 16:06   #6
markz88
Junior Member
 
Iscritto dal: May 2007
Messaggi: 28
Per favore come posso esprimere il tempo in millisecondi?? E' urgente
markz88 è offline   Rispondi citando il messaggio o parte di esso
Old 09-02-2011, 17:54   #7
Supdario
Member
 
Iscritto dal: Mar 2008
Messaggi: 267
Sotto Windows, il modo più preciso (mooolto preciso, mi pare che si possa arrivare alla precisione di meno di un nanosecondo) è di usare il Performance Counter, questo è un esempio:

Codice:
#include <windows.h>
...
LARGE_INTEGER a, b, oh, freq;
double tempo;
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&a);
QueryPerformanceCounter(&b);
oh.QuadPart = b.QuadPart - a.QuadPart;
QueryPerformanceCounter(&a);
//Inserisci qui il codice da eseguire
QueryPerformanceCounter(&b);
tempo = (double)(b.QuadPart - a.QuadPart - oh.QuadPart)/freq;
Questo ti restituirà il tempo in secondi. Se vuoi i millisecondi ti basta moltiplicare quel valore per 1000.
La parte iniziale è il calcolo dell'overhead, cioè serve per aumentare l'accuratezza rimuovendo il tempo necessario alla chiamata della funzione QueryPerformanceCounter.
Supdario è offline   Rispondi citando il messaggio o parte di esso
Old 09-02-2011, 18:11   #8
markz88
Junior Member
 
Iscritto dal: May 2007
Messaggi: 28
Quote:
Originariamente inviato da Supdario Guarda i messaggi
Sotto Windows, il modo più preciso (mooolto preciso, mi pare che si possa arrivare alla precisione di meno di un nanosecondo) è di usare il Performance Counter, questo è un esempio:

Codice:
#include <windows.h>
...
LARGE_INTEGER a, b, oh, freq;
double tempo;
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&a);
QueryPerformanceCounter(&b);
oh.QuadPart = b.QuadPart - a.QuadPart;
QueryPerformanceCounter(&a);
//Inserisci qui il codice da eseguire
QueryPerformanceCounter(&b);
tempo = (double)(b.QuadPart - a.QuadPart - oh.QuadPart)/freq;
Questo ti restituirà il tempo in secondi. Se vuoi i millisecondi ti basta moltiplicare quel valore per 1000.
La parte iniziale è il calcolo dell'overhead, cioè serve per aumentare l'accuratezza rimuovendo il tempo necessario alla chiamata della funzione QueryPerformanceCounter.

Grazie mille ma con DevC++ mi da l'errore:

"Invalid operands to binary /"

sulla stringa

Codice:
tempo = (double)(b.QuadPart - a.QuadPart - oh.QuadPart)/freq;

Ultima modifica di markz88 : 09-02-2011 alle 18:25.
markz88 è offline   Rispondi citando il messaggio o parte di esso
Old 09-02-2011, 19:04   #9
Supdario
Member
 
Iscritto dal: Mar 2008
Messaggi: 267
Errore mio, devi dividere per freq.QuadPart
Supdario è offline   Rispondi citando il messaggio o parte di esso
Old 09-02-2011, 19:19   #10
Shinnok.Exor
Senior Member
 
L'Avatar di Shinnok.Exor
 
Iscritto dal: Jan 2008
Messaggi: 1056
Quote:
Originariamente inviato da Shinnok.Exor Guarda i messaggi
Beh se lo dividi per CLOCKS_PER_SEC certo che restituisce il tempo in secondi.
Volevo dire di togliere la divisione per CLOCKS_PER_SEC.

Quote:
Originariamente inviato da Supdario Guarda i messaggi
Sotto Windows, il modo più preciso (mooolto preciso, mi pare che si possa arrivare alla precisione di meno di un nanosecondo) è di usare il Performance Counter, questo è un esempio:

Codice:
#include <windows.h>
...
LARGE_INTEGER a, b, oh, freq;
double tempo;
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&a);
QueryPerformanceCounter(&b);
oh.QuadPart = b.QuadPart - a.QuadPart;
QueryPerformanceCounter(&a);
//Inserisci qui il codice da eseguire
QueryPerformanceCounter(&b);
tempo = (double)(b.QuadPart - a.QuadPart - oh.QuadPart)/freq;
Questo ti restituirà il tempo in secondi. Se vuoi i millisecondi ti basta moltiplicare quel valore per 1000.
La parte iniziale è il calcolo dell'overhead, cioè serve per aumentare l'accuratezza rimuovendo il tempo necessario alla chiamata della funzione QueryPerformanceCounter.
clock(); funziona allo stesso modo.
Ritorna il numero di cicli di clock della CPU fino a quel momento, ed è la misurazione di temporizzazione più precisa che puoi fare su un PC, in quanto non esistono secondi, microsecondi e nanosecondi come di tu, ma solo cicli di clock del generatore.

Quindi clock () (standard, quindi funzionerà su tutti i PC che implementano librerie C) e QueryPerformanceCounter() (non portabile) fanno esattamente la stessa cosa, anzi quasi sicuramente QueryPerformanceCounter () usa clock() per recuperare il numero di clock . Non dividendo il risultato di clock(); per CLOCKS_PER_SEC recuperi il numero di cicli di clock.

Ti consiglio di usare clock() che almeno è portabile tra i SO

Codice:
#include <time.h>

int main() {
clock_t inizio;
long tempo_esec;

inizio = clock();

.............

tempo_esec = (clock() - inizio) / (CLOCKS_PER_SEC / 3600) // TEmpo di esec in millisecondi

}
__________________
Apps Freeware made by me

Ultima modifica di Shinnok.Exor : 09-02-2011 alle 19:29.
Shinnok.Exor è offline   Rispondi citando il messaggio o parte di esso
Old 09-02-2011, 19:55   #11
markz88
Junior Member
 
Iscritto dal: May 2007
Messaggi: 28
Quote:
Originariamente inviato da Shinnok.Exor Guarda i messaggi
Volevo dire di togliere la divisione per CLOCKS_PER_SEC.



clock(); funziona allo stesso modo.
Ritorna il numero di cicli di clock della CPU fino a quel momento, ed è la misurazione di temporizzazione più precisa che puoi fare su un PC, in quanto non esistono secondi, microsecondi e nanosecondi come di tu, ma solo cicli di clock del generatore.

Quindi clock () (standard, quindi funzionerà su tutti i PC che implementano librerie C) e QueryPerformanceCounter() (non portabile) fanno esattamente la stessa cosa, anzi quasi sicuramente QueryPerformanceCounter () usa clock() per recuperare il numero di clock . Non dividendo il risultato di clock(); per CLOCKS_PER_SEC recuperi il numero di cicli di clock.

Ti consiglio di usare clock() che almeno è portabile tra i SO

Codice:
#include <time.h>

int main() {
clock_t inizio;
long tempo_esec;

inizio = clock();

.............

tempo_esec = (clock() - inizio) / (CLOCKS_PER_SEC / 3600) // TEmpo di esec in millisecondi

}
Seguendo il metodo da te consigliatomi mi da l'errore [Warning] Division by zero ed il programma crasha
markz88 è offline   Rispondi citando il messaggio o parte di esso
Old 09-02-2011, 20:02   #12
Shinnok.Exor
Senior Member
 
L'Avatar di Shinnok.Exor
 
Iscritto dal: Jan 2008
Messaggi: 1056
Quote:
Originariamente inviato da markz88 Guarda i messaggi
Seguendo il metodo da te consigliatomi mi da l'errore [Warning] Division by zero ed il programma crasha
uhm mi sa che ho sbagliato il calcolo, prova:

Codice:
tempo_esec = ((clock() - inizio)/CLOCKS_PER_SEC)*3600
Insomma,

Codice:
tempo_esec =(clock() - inizio)/CLOCKS_PER_SEC
ti ritorna il tempo di esecuzione in secondi, sai matematicamente come portare quei secondi in millisecondi.
__________________
Apps Freeware made by me
Shinnok.Exor è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2011, 01:11   #13
bobbytre
Senior Member
 
L'Avatar di bobbytre
 
Iscritto dal: Feb 2010
Messaggi: 466
Codice PHP:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <time.h>

#include <windows.h>

int main(int argcchar *argv[])
{

    
SYSTEMTIME sysTime;
    
FILETIME fileTime;
    
    
LARGE_INTEGER start;
    
LARGE_INTEGER end;
    
LARGE_INTEGER diff;

    
    
GetLocalTime(&sysTime);    
    
SystemTimeToFileTime(&sysTime, &fileTime);
    
memcpy(&start, &fileTimesizeof(LARGE_INTEGER));
    
    
Sleep(1000); // 1 Secondo

    
GetLocalTime(&sysTime);    
    
SystemTimeToFileTime(&sysTime, &fileTime);
    
memcpy(&end, &fileTimesizeof(LARGE_INTEGER));
    
    
diff.QuadPart end.QuadPart start.QuadPart;
    
    
printf("%22lld - \n",end.QuadPart);
    
printf("%22lld = \n",start.QuadPart);
    
printf("------------------------ \n");
    
printf("%22lld x 100-nanosecond = %lld seconds \n",diff.QuadPart ,diff.QuadPart/10000000 );

    return 
0;

__________________
I robot hanno scintillanti fondoschiena metallici che non dovrebbero essere baciati.
bobbytre è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2011, 12:08   #14
markz88
Junior Member
 
Iscritto dal: May 2007
Messaggi: 28
Quote:
Originariamente inviato da bobbytre Guarda i messaggi
Codice PHP:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <time.h>

#include <windows.h>

int main(int argcchar *argv[])
{

    
SYSTEMTIME sysTime;
    
FILETIME fileTime;
    
    
LARGE_INTEGER start;
    
LARGE_INTEGER end;
    
LARGE_INTEGER diff;

    
    
GetLocalTime(&sysTime);    
    
SystemTimeToFileTime(&sysTime, &fileTime);
    
memcpy(&start, &fileTimesizeof(LARGE_INTEGER));
    
    
Sleep(1000); // 1 Secondo

    
GetLocalTime(&sysTime);    
    
SystemTimeToFileTime(&sysTime, &fileTime);
    
memcpy(&end, &fileTimesizeof(LARGE_INTEGER));
    
    
diff.QuadPart end.QuadPart start.QuadPart;
    
    
printf("%22lld - \n",end.QuadPart);
    
printf("%22lld = \n",start.QuadPart);
    
printf("------------------------ \n");
    
printf("%22lld x 100-nanosecond = %lld seconds \n",diff.QuadPart ,diff.QuadPart/10000000 );

    return 
0;

Ti ringrazio mille per il codice, funziona

Ma vorrei porti una domanda, come mai per trasfomare i microsecondi in secondi dividi per 10.000.000 e non per 1.000.000 come indicato nella tabella di conversione della matematica?
markz88 è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2011, 12:36   #15
bobbytre
Senior Member
 
L'Avatar di bobbytre
 
Iscritto dal: Feb 2010
Messaggi: 466
Quote:
Originariamente inviato da markz88 Guarda i messaggi
Ti ringrazio mille per il codice, funziona

Ma vorrei porti una domanda, come mai per trasfomare i microsecondi in secondi dividi per 10.000.000 e non per 1.000.000 come indicato nella tabella di conversione della matematica?
L'avevo scritto nel printf , dipende dal fatto che non sono microsecondi ma un ordine di grandezza inferiore (100-ns cioe' 10^-7)

la struct FILETIME contiene appunto:
FILETIME Structure

Contains a 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601 (UTC).
__________________
I robot hanno scintillanti fondoschiena metallici che non dovrebbero essere baciati.
bobbytre è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2011, 15:53   #16
||ElChE||88
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4907
Quote:
Originariamente inviato da Shinnok.Exor Guarda i messaggi
clock(); funziona allo stesso modo.
Ritorna il numero di cicli di clock della CPU fino a quel momento, ed è la misurazione di temporizzazione più precisa che puoi fare su un PC, in quanto non esistono secondi, microsecondi e nanosecondi come di tu, ma solo cicli di clock del generatore.

Quindi clock () (standard, quindi funzionerà su tutti i PC che implementano librerie C) e QueryPerformanceCounter() (non portabile) fanno esattamente la stessa cosa, anzi quasi sicuramente QueryPerformanceCounter () usa clock() per recuperare il numero di clock . Non dividendo il risultato di clock(); per CLOCKS_PER_SEC recuperi il numero di cicli di clock.
Ma anche no, dipende dall'implementazione. Quella di Windows ha una precisione di millisecondi, non microsecondi come QueryPerformanceCounter.
||ElChE||88 è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2011, 16:03   #17
markz88
Junior Member
 
Iscritto dal: May 2007
Messaggi: 28
Grazie a tutti per le risposte
markz88 è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2011, 17:29   #18
Supdario
Member
 
Iscritto dal: Mar 2008
Messaggi: 267
Quote:
Originariamente inviato da Shinnok.Exor Guarda i messaggi
Volevo dire di togliere la divisione per CLOCKS_PER_SEC.



clock(); funziona allo stesso modo.
Ritorna il numero di cicli di clock della CPU fino a quel momento, ed è la misurazione di temporizzazione più precisa che puoi fare su un PC, in quanto non esistono secondi, microsecondi e nanosecondi come di tu, ma solo cicli di clock del generatore.

Quindi clock () (standard, quindi funzionerà su tutti i PC che implementano librerie C) e QueryPerformanceCounter() (non portabile) fanno esattamente la stessa cosa, anzi quasi sicuramente QueryPerformanceCounter () usa clock() per recuperare il numero di clock . Non dividendo il risultato di clock(); per CLOCKS_PER_SEC recuperi il numero di cicli di clock.

Ti consiglio di usare clock() che almeno è portabile tra i SO

Codice:
#include <time.h>

int main() {
clock_t inizio;
long tempo_esec;

inizio = clock();

.............

tempo_esec = (clock() - inizio) / (CLOCKS_PER_SEC / 3600) // TEmpo di esec in millisecondi

}
Non è esattamente così.
La funzione clock() del C returna una certa quantità di clock, che però non sono i cicli di clock del processore, ma si basano su una costante CLOCKS_PER_SEC sempre fissa, decisa dal compilatore (di solito è qualcosa tipo 1000000).
Invece il PerformanceCounter usa direttamente la frequenza del processore come unità di misura (quindi se il tuo processore è da 3 GHz, avrai 1/(3 GHz) di risoluzione, cioè 0.33 nanosecondi).

In ogni caso concordo sul fatto che forse in questo caso la funzione clock() del C è più appropriata, sia perché non penso che gli sia richiesta tantissima precisione, ed inoltre è portabile.
Supdario è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2011, 19:04   #19
markz88
Junior Member
 
Iscritto dal: May 2007
Messaggi: 28
Quote:
Originariamente inviato da Supdario Guarda i messaggi
Non è esattamente così.
La funzione clock() del C returna una certa quantità di clock, che però non sono i cicli di clock del processore, ma si basano su una costante CLOCKS_PER_SEC sempre fissa, decisa dal compilatore (di solito è qualcosa tipo 1000000).
Invece il PerformanceCounter usa direttamente la frequenza del processore come unità di misura (quindi se il tuo processore è da 3 GHz, avrai 1/(3 GHz) di risoluzione, cioè 0.33 nanosecondi).

In ogni caso concordo sul fatto che forse in questo caso la funzione clock() del C è più appropriata, sia perché non penso che gli sia richiesta tantissima precisione, ed inoltre è portabile.
Si ma a me serve sapere il tempo di esecuzione degli algoritmi di ordinamento Bubblesort, Insertionsort, Selectionsort, Mergesort e Heapsort presenti nel mio programma ed utilizzando la funzione clock() ottengo come tempo di esecuzione 0 secondi e non posso costruire i grafici, capite? Invece con quello scritto da bobbytre ottengo un numero moltiplicato per 10^-7 su cui mi posso basare per costruire dei grafici... ma sinceramente non so quale unità di misura poter usare xD visto che non sono ne millisecondi ne nanosecondi se non ho capito male xD aiutooooo!! Se volessi utilizzare clock() con la variabile tempo di tipo double e finish e start di tipo clock_t, l'espressione corretta è:

Codice:
tempo = (double)(finish - start)/CLOCKS_PER_SEC;
oppure no?

Ultima modifica di markz88 : 10-02-2011 alle 20:20.
markz88 è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2011, 20:27   #20
bobbytre
Senior Member
 
L'Avatar di bobbytre
 
Iscritto dal: Feb 2010
Messaggi: 466
io ti posso consigliare cosi:
Codice PHP:
...
printf("%22lld x 100-nanosecond = %lld MILLISECONDI \n",diff.QuadPart ,diff.QuadPart/10000 ); 
__________________
I robot hanno scintillanti fondoschiena metallici che non dovrebbero essere baciati.
bobbytre è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei Wi-Fi 7 con il design di una vetta innevata: ecc...
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte Core Ultra 7 270K Plus e Core Ultra 7 250K Plus:...
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto Recensione Nothing Phone 4(a): sempre iconico ma...
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale Corsair Vanguard Air 99 Wireless: non si era mai...
Microsoft e NVIDIA insieme per dare una ...
Ring rinnova l'intera gamma video: 4K su...
Recensione Galaxy Buds4 Pro: le cuffie S...
Spotify si arricchisce ancora: arriva So...
I digital twin di AVEVA a supporto delle...
Iliad non si ferma: clienti in crescita ...
XuanTie C950, il chip IA di Alibaba basa...
Volkswagen richiama 94.000 auto elettric...
Le nuove LaserJet di HP portano la critt...
FSR 4 gira sulla GPU di PS5 Pro, ma non ...
Intel rinnova l'offerta professionale: C...
Galaxy A57 5G e A37 5G ufficiali: l'IA d...
Outlook Classic e Gmail: Microsoft pubbl...
HONOR MagicPad 4 porta OpenClaw su Andro...
Android Automotive diventa open source e...
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: 17:28.


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