Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Abbiamo messo alla prova il drone Antigravity A1 capace di riprese in 8K a 360° che permette un reframe in post-produzione ad eliche ferme. Il concetto è molto valido, permette al pilota di concentrarsi sul volo e le manovre in tutta sicurezza e decidere con tutta tranquillità come gestire le riprese. La qualità dei video, tuttavia, ha bisogno di uno step in più per essere competitiva
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme e Aston Martin Aramco F1 Team si sono (ri)unite dando alla vita un flagship con chip Snapdragon 8 Elite Gen 5 e design esclusivo ispirato alle monoposto di Formula 1. La Dream Edition introduce la nuova colorazione Lime Essence abbinata al tradizionale Aston Martin Racing Green, decorazioni intercambiabili personalizzate e una confezione a tema F1, intorno a uno smartphone dall'ottima dotazione tecnica con batteria da 7000mAh ricaricabile a 120W e isola fotografica intercambiabile
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: 12883
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


Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare Antigravity A1: drone futuristico per riprese a ...
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
Ci risiamo, la censura colpisce Roblox: ...
Gli iPhone 17 Pro perdono una funzione d...
Windows 11 non cresce e riduce la sua qu...
Linus Torvalds durissimo su Elon Musk: '...
Il sogno del metaverso crolla? Zuckerber...
Axiom Space ha completato un importante ...
Gli aeroplani Airbus utilizzeranno i sat...
Una nuova immagine della cometa interste...
'La soluzione a un problema che non esis...
Radeon RX 9000 sì, Ryzen 9000 no:...
Amazon versa 180 milioni al Fisco e canc...
Meta, il Board di Supervisione guarda o...
DJI rivoluziona le consegne aeree: il nu...
Fibercop e Microsoft Italia uniscono per...
App Store Award 2025: scarica le 17 app ...
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: 07:38.


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