Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-02-2011, 19: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, 20: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, 21:13   #3
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 13043
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 21:16.
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 07-02-2011, 21: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, 08: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, 15: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, 16: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, 17: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 17:25.
markz88 è offline   Rispondi citando il messaggio o parte di esso
Old 09-02-2011, 18: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, 18: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 18:29.
Shinnok.Exor è offline   Rispondi citando il messaggio o parte di esso
Old 09-02-2011, 18: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, 19: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, 00: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, 11: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, 11: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, 14:53   #16
||ElChE||88
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4908
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, 15: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, 16: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, 18: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 19:20.
markz88 è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2011, 19: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


Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Microsoft Defender: falso allarme sull'a...
Aerei in volo e truppe pronte all'assalt...
Usano Claude per hackerare OpenAI: ricer...
RatHat: il nuovo malware Android usa il ...
Domanda di petrolio in calo di 2,5 milio...
Il meglio delle offerte weekend Amazon a...
Dopo oltre 100 anni di tentativi, l'IA d...
Speciale robot aspirapolvere in offerta ...
L'IA sta cancellando i lavori junior? Il...
Debutta Chery Italia: non più sol...
Addio ai dischi? Xbox ci aveva già...
Speciale TV Amazon: 4 modelli, da 139€ f...
Il nuovo iPhone 18 Pro Max ha una ricari...
Speciale smartphone Android: 7 modelli i...
La Camera USA presenta il conto: i data ...
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: 20:59.


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