Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Abbiamo provato per molti giorni il nuovo Z Fold7 di Samsung, un prodotto davvero interessante e costruito nei minimi dettagli. Rispetto al predecessore, cambiano parecchie cose, facendo un salto generazionale importante. Sarà lui il pieghevole di riferimento? Ecco la nostra recensione completa.
The Edge of Fate è Destiny 2.5. E questo è un problema
The Edge of Fate è Destiny 2.5. E questo è un problema
Bungie riesce a costruire una delle campagne più coinvolgenti della serie e introduce cambiamenti profondi al sistema di gioco, tra nuove stat e tier dell’equipaggiamento. Ma con risorse limitate e scelte discutibili, il vero salto evolutivo resta solo un’occasione mancata
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello
AMD ha aggiornato l'offerta di CPU HEDT con i Ryzen Threadripper 9000 basati su architettura Zen 5. In questo articolo vediamo come si comportano i modelli con 64 e 32 core 9980X e 9970X. Venduti allo stesso prezzo dei predecessori e compatibili con il medesimo socket, le nuove proposte si candidano a essere ottimi compagni per chi è in cerca di potenza dei calcolo e tante linee PCI Express per workstation grafiche e destinate all'AI.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-02-2006, 15:58   #261
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
@TigerShark

Beh certo che riarrangiando il codice puoi evitare il leak
Ah, ma davvero non hai mai ridimensionato un array???????
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2006, 15:59   #262
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12103
Quote:
Originariamente inviato da cionci
Sinceramente credo che con questo non possa cambiare niente...
perkè?
allocando il nuovo array all'interno del metodo e poi restituendo l'indirizzo di memoria del nuovo array il vekkio array dovrebbe andare perduto alla distruzione del metodo... o no?
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2006, 16:00   #263
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Hi visto che l'esempio è tratto da qui: http://www-128.ibm.com/developerwork...-jtp01246.html
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2006, 16:01   #264
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da -fidel-
Vediamo se ora sei più contento Prova questo:

Codice:
public class LeakyChecksum {
    private byte[] byteArray;
    
    public synchronized int getFileChecksum(String fileName) {
        int len = getFileSize(fileName);
        if (byteArray == null || byteArray.length < len)
            byteArray = new byte[len];
        readFileContents(fileName, byteArray);
        // Calcola il checksum e ritorna (omesso...)
    }
}
Prova pure con Java 1.5 ad usare questa classe, guardando lo stato della memoria con un profiler. Vedrai che, fino a quando non la distruggi, il memory leak c'è eccome, ed il GC non ci fa nulla se non prendi i dovuti accorgimenti. C'è un modo per correggerla ovviamente
Non vorrei dire una bestialata. Ma in questo caso non basta mettere un
byteArray = null; una volta terminata il calcolo? In questo modo si perde l'unico riferimento alla zona di memoria e il gc puo cancellarla.

ciao
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2006, 16:01   #265
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Quote:
Originariamente inviato da ^TiGeRShArK^
Arrays are fixed-length structures for storing multiple values of the same type.
http://java.about.com/od/beginningjava/l/aa_array.htm
Leggilo meglio e tutto... Poi vai a guardare una trattazione più ampia sugli array, fixed-length non è proprio esatto...
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2006, 16:01   #266
MenageZero
Senior Member
 
L'Avatar di MenageZero
 
Iscritto dal: Sep 2005
Messaggi: 2717
Quote:
Originariamente inviato da ^TiGeRShArK^
appunto con la funzione ke ho rsicritto prima si dovrebbe evitare questo problema...
byteArray = readFileContents(fileName, byteArray);
secondo me readFileContents è ininfluente:
fermo restando che non ne conosciamo il codice, sembra che non facia altro che riempire l'array di vo0lta in volta referenziato da byteArray...

scondo me il punto è solo "byteArray = new byte[len];" (unitamente al fatto che byteArray è var di istanza), perché noi riteniamo che ogni volta venga allocato un nuovo array, mentre fidel che lo stesso array ogni volta venga aumentato di lunghezza (ma mai diminuito) se necessario.
__________________
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." - Albert Einstein
fonte: http://it.wikiquote.org/wiki/Albert_Einstein
MenageZero è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2006, 16:02   #267
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12103
Quote:
Originariamente inviato da -fidel-
@TigerShark

Beh certo che riarrangiando il codice puoi evitare il leak
Ah, ma davvero non hai mai ridimensionato un array???????
non lo puoi ridimensionare..
Puoi solo allocare un nuovo array della dimensione nuova perdendo il riferimento al vecchio....
Quello che dici tu lo puoi fare con arraylist, vector, e tutti gli oggetti di tipo collection.
gli Array in java sono infatti per definizione strutture a lunghezza fissa....
Quote:
An array is a structure that holds multiple values of the same type. The length of an array is established when the array is created. After creation, an array is a fixed-length structure.
va meglio preso dal sito ufficiale della sun?
http://java.sun.com/docs/books/tutor...ta/arrays.html
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2006, 16:03   #268
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12103
Quote:
Originariamente inviato da VICIUS
Non vorrei dire una bestialata. Ma in questo caso non basta mettere un
byteArray = null; una volta terminata il calcolo? In questo modo si perde l'unico riferimento alla zona di memoria e il gc puo cancellarla.

ciao
ovvio.. ma mi pare piu' logico spostare la new all'interno del metodo cosi viene deallocato automaticamente il vecchio all'uscita del metodo senza porlo a null esplicitamente
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2006, 16:04   #269
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Quote:
Originariamente inviato da cionci
Hi visto che l'esempio è tratto da qui: http://www-128.ibm.com/developerwork...-jtp01246.html
Ahahah visto! Queste cose le ho proprio studiate dai vari whitepaper della ibm
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2006, 16:04   #270
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12103
Quote:
Originariamente inviato da -fidel-
Leggilo meglio e tutto... Poi vai a guardare una trattazione più ampia sugli array, fixed-length non è proprio esatto...
ma come non è proprio esatto???
diglielo a quelli della sun allora che hanno sbagliato la descrizione nel loro sito ufficiale
kakkio.. te lo stiamo dicendo in tre...
ti ho postato un link...
ti ho postato il link ufficiale della sun e ancora insisti che puoi variare la dimensione di un array dopo averlo allocato???
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2006, 16:05   #271
MenageZero
Senior Member
 
L'Avatar di MenageZero
 
Iscritto dal: Sep 2005
Messaggi: 2717
Quote:
Originariamente inviato da VICIUS
Non vorrei dire una bestialata. Ma in questo caso non basta mettere un
byteArray = null; una volta terminata il calcolo? In questo modo si perde l'unico riferimento alla zona di memoria e il gc puo cancellarla.

ciao
si se si ritiene che il problema sia che l'ultimo Array istanziato "campi" almeno fino quando "campa" l'intero oggetto LeakyChekSum, ma non sembrava essere questo il punto e cmq allora semplicemente byteArray lo dichiari nel metodo, non come var di istanza
__________________
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." - Albert Einstein
fonte: http://it.wikiquote.org/wiki/Albert_Einstein
MenageZero è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2006, 16:05   #272
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da ^TiGeRShArK^
perkè?
allocando il nuovo array all'interno del metodo e poi restituendo l'indirizzo di memoria del nuovo array il vekkio array dovrebbe andare perduto alla distruzione del metodo... o no?
Viene perduto anche così...infatti c'è scritto in quel link che questo metodo mette "pressione" al GC... Quindi il Garbage Collector interviene sul vecchio buffer... Il problema è il ciclo vita di byteArray...che è maggiore del suo arco di utilizzo... Ma ripeto...a me più che leak mi sembra un designa errato...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2006, 16:06   #273
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Piccola pausa per festeggiare il mio compleanno ...


Quote:
Originariamente inviato da ekerazha
Per cortesia risparmiami questi patetici esercizi di retorica.
Non è retorica, sono dei libri

Quote:
Tu li hai letti tutti questi libri? Si parla dell'argomento di cui stiamo discutendo? In quali termini? E si parla di questo in tutti i libri o solo in alcuni? Quali? Quali argomentazioni vengono portate a sostegno delle loro tesi (e quali sarebbero le loro tesi?). Se le argomentazioni sono le stesse che hai portato tu, credo sia meglio non buttare i soldi
Certo che li ho letti.
Nessun libro fortunatamente viene pubblicato per parlare di queste cose. I primi libri che ti ho dato, in realtà, non sono libri. Sono dispense pubblicate dal Servizio Editoriale dell'Università di Pisa e sono considerate dei capisaldi dell'informatica teorica. Diciamo che trattano le basi da cui ogni linguaggio formale ha origine. Dovrebbero metterli in pubblicazione da qualche editore serio, visto che io li considero delle bibbie in merito. Dopo averli letti cambia il modo di considerare un linguaggio di programmazione. Ti da un'ottica piu' formale all'argomento. Non è tanto facile trovare simile materiale in libri commerciali, visto che è roba davvero specializzata. Per quanto riguarda il dragon book, basta studiarlo per capire da soli (senza ulteriori libri) quando un linguaggio è di alto e basso livello. Abbiamo detto che il concetto di "medio" è puramente formale e non si considera in genere nella classificazione. I puntatori esistono anche in Pascal. Secondo alcuni ragionamenti che si sono fatti, anche Pascal allora dovrebbe essere di medio/basso livello? Basta contare il numero di parole riservate per dare una stima approssimativa.

Quote:
P.S.
Visto che pur non sapendo a quali progetti partecipo io dici che "scrivo software banale", mi piacerebbe molto conoscere cosa hai sviluppato TU.
Poi metteremo a confronto le due cose e vedremo chi si farà quattro risate
Io non ho detto che scrivi software banale, ho detto che chiunque partecipi in progetti non banali si rende conto che un bug (anche quelli piu' comuni) non dipendono esclusivamente dall' "attenzione", "cura del codice", "progettazione dell'architettura", tutte cose che tu invece hai elencato come "metodi" per eliminare simili bug. Il livello di attenzione, forte o debole che ognuno di noi ha, rimane "umano". Vista l'impossibilità di scrivere codice complesso senza introdurre bug comuni, è nata l'ingegneria del software. Disciplina che cerca di dare un metodo al processo. E nonostante ciò, non ha eliminato il problema. Da cui i libri che ti ho consigliato di leggere. Ti fanno rendere conto che magari esiste una complessità del software che, da come parli, evidentemente sembri ignorare. Tutto qui. E' inutile sfidarmi sul piano personale. Come non ti conosco io non mi conosci tu. Da dove proviene tutta questa certezza di "vincere"?
Posso scrivere una funzione completamente "bug free". Tuttavia il ruolo di una funzione va considerato anche sul piano semantico in relazione al codice complessivo. Quella funzione "bug free" potrebbe diventare completamente priva di senso in seguito a una modifica da un'altra parte del codice. Moltiplica il tutto per milioni di righe, strutture dati non banali che interagiscono fra loro, funzioni che si basano sul contenuto di una struttura che al minimo cambiamento diventano inconsistenti e ti rendi conto che il discorso "dell'attenzione" che facevi tu si continua ad applicare solo a software banale.
Il cervello umano riesce a gestire (male) un massimo di 3 cose contemporaneamente. E' la biologia che lo dice, non serve neanche considerare l'informatica.
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2006, 16:08   #274
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12103
Quote:
Originariamente inviato da cionci
Viene perduto anche così...infatti c'è scritto in quel link che questo metodo mette "pressione" al GC... Quindi il Garbage Collector interviene sul vecchio buffer... Il problema è il ciclo vita di byteArray...che è maggiore del suo arco di utilizzo... Ma ripeto...a me più che leak mi sembra un designa errato...
ma infatti E' un desing errato...
questo è proprio il problema del passaggio per riferimento...
facendo la new nel metodo appena chiamato e ricevendo il riferimento al nuovo vettore non si stressa per niente il GC dato che quell'oggetto viene eliminato automaticamente alla morte del metodo...
ripeto... MAI effettuare passaggi per riferimento... porta sempre a errori di questo tipo...
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2006, 16:09   #275
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12103
Quote:
Originariamente inviato da mjordan
Piccola pausa per festeggiare il mio compleanno ...
AUGURI!
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2006, 16:09   #276
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Quote:
Originariamente inviato da ekerazha
Comunque mjordan... quei libri (dai titoli) sembrerebbero abbastanza "basilari" (tranne "Ingegneria del software", materia tra l'altro trattata nel corso di Ingegneria Informatica) e mi sembrerebbero più adatti ad un pubblico come te
Se li leggi ti accorgi che non sono proprio elementari come li consideri... Come fai a stipulare un verdetto dai soli titoli... Un qualcosa prima di essere giudicato va letto. Il Fowler che ti ho dato non è proprio banale. Ti fa rendere conto che UML non è soltanto un class diagram. Il dragon Book all'unanimità è pure considerato un testo "difficile", non adatto ai principianti e l'ho preso proprio perchè ho visto un esperto come te.
Leggili.

Quote:
Tra l'altro alcuni di quelli sono poco inerenti all'argomento di discussione
L'argomento trattato non è altro che una discussione che si basa su opinioni che invece hanno fondamento in quelle discipline. Da cui i libri che ti ho citato. Prima di discutere di qualcosa ci vuole fondamento.
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2006, 16:09   #277
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da VICIUS
Non vorrei dire una bestialata. Ma in questo caso non basta mettere un
byteArray = null; una volta terminata il calcolo? In questo modo si perde l'unico riferimento alla zona di memoria e il gc puo cancellarla.
Sì, ma l'intenzione di chi l'ha scritto (si legge sempre nel link) è cachare l'array per ottimizzarne l'accesso (ovviamente fino a quando non necessitiamo di una dimensione maggiore)...

http://www-128.ibm.com/developerwork...-jtp01246.html

Ultima modifica di cionci : 06-02-2006 alle 16:16.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2006, 16:11   #278
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Quote:
Originariamente inviato da ekerazha
UML non mi sembra particolarmente ostico.
UML non è soltanto costituito da Class diagram. UML può diventare terrificante. Certo non è difficile da imparare, ma provare a implementare qualcosa che risci a concepire in UML è un'altro "esercizio" per capire dove può arrivare la complessità del software. E che quindi il livello di "attenzione" non c'entra ancora nulla.
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2006, 16:11   #279
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Quote:
Originariamente inviato da ^TiGeRShArK^
ma come non è proprio esatto???
diglielo a quelli della sun allora che hanno sbagliato la descrizione nel loro sito ufficiale
kakkio.. te lo stiamo dicendo in tre...
ti ho postato un link...
ti ho postato il link ufficiale della sun e ancora insisti che puoi variare la dimensione di un array dopo averlo allocato???
Hai ragione scusami, sono stato molto poco chiaro. Io (ma non solo io) lo chiamo ridimensionamento, e mi spiego meglio.
Nella funzione che ho scritto, quando la lunghezza del buffer non basta più, ho bisogno di crearne un altro più grande che andrà bene. Ora, se reinstanzio la stessa variabile, la vecchia memoria viene distrutta (perdendo tutto il contenuto) e viene riallocato con la nuova dimensione (ecco il ridimensionamento. Nell'esempio il problema sta nel fatto che, una volta riallocato, il buffer NON viene cancellato dal GC perchè il suo reference NON è nel metodo ma nella classe!
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2006, 16:12   #280
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da ^TiGeRShArK^
ripeto... MAI effettuare passaggi per riferimento... porta sempre a errori di questo tipo...
Ma dov'era il apssaggio epr riferimento prima
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Samsung Galaxy Z Fold7: un grande salto generazionale Recensione Samsung Galaxy Z Fold7: un grande sal...
The Edge of Fate è Destiny 2.5. E questo è un problema The Edge of Fate è Destiny 2.5. E questo ...
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello Ryzen Threadripper 9980X e 9970X alla prova: AMD...
Acer TravelMate P4 14: tanta sostanza per l'utente aziendale Acer TravelMate P4 14: tanta sostanza per l'uten...
Hisense M2 Pro: dove lo metti, sta. Mini proiettore laser 4K per il cinema ovunque Hisense M2 Pro: dove lo metti, sta. Mini proiett...
Il telescopio spaziale James Webb ha cat...
Amazon scatenata nel weekend: sconti sug...
Pulizia per 45 giorni senza pensieri: il...
Apple taglia il prezzo degli AirPods Pro...
Tutti i MacBook Air M4 2025 da 13 pollic...
Roborock QV 35A a 429€ o Dreame L40 Ultr...
SpaceX Starship: Ship 37 ha eseguito due...
Sharkoon punta sui case a basso costo, m...
La tua rete Wi-Fi fa pena? Questi FRITZ!...
Amazon, un weekend di fuoco per gli scon...
Ancora 3 smartwatch Amazfit in forte sco...
Sharkoon A60 RGB: dissipatore ad aria du...
HONOR 400 Pro a prezzo bomba su Amazon: ...
Offerte da non perdere: robot aspirapolv...
Apple Watch e Galaxy Watch ai minimi sto...
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: 21:20.


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