Spiegazione consumo memoria in IL2

Notizie e aggiornamenti sui software e le periferiche occorrenti per utilizzare i simulatori.
Rispondi
Avatar utente
72sq_Iva
Team
Team
Messaggi: 1158
Iscritto il: sab feb 07, 2009 12:00 am
Località: Baviera

Spiegazione consumo memoria in IL2

Messaggio da 72sq_Iva »

Adesso che abbiamo la mod per misurare l'effettivo consumo di memoria non dobbiamo lasciarci ingannare da quello che leggiamo e trarre conclusioni errate, quindi per evitare confusione ecco il riassunto:
  • - quando diciamo che abbiamo "l'exe da 512MB" significa che mentre IL2 sta girando puo' allocare dinamicamente al massimo 512MB - questa parte di memoria si chiama anche "heap" ed il suo valore di utilizzo viene stampato sulla console quando si utilizza la mod MemoryLog

    - non c'e' nessun modo per vedere con un tool esterno quanti di questi MB sono occupati

    - un tool esterno tipo task manager o process explorer da un valore che comprende altri fattori, quindi sono solo utili se si guarda il "trend", ovvero l'andamento del consumo di memoria ma MAI per giudicare quanta memoria libera abbiamo ancora in IL2

    - un tool esterno come task manager puo' essere invece utile per vedere quanta memoria fisica disponibile si ha nel sistema, diciamo che se dopo che avete fatto partire la missione e siete entrati in cockpit avete almeno 500MB di memoria fisica disponibile siete a posto

    - il Garbage Collector (GC), ovvero quella parte del Java che "pulisce" la memoria non piu' necessaria e la rende di nuovo disponibile, funziona bene in IL2, chiamarlo a mano con il comando GC sulla console o con il file automatico gc.cmd non prolunghera' mai la durata massima di una missione ma causera' solo dei rallentamenti (sicuramente a voi e potenzialmente anche a quelli vicini in formazione)

    - IL2 chiama il GC in automatico solo quando ce n'e' effettivamente bisogno, quindi se si ha un exe grande, tipo 256MB/512MB/1G, il GC potrebbe non essere chiamato mai durante una missione (esempio con un exe da 256MB il GC non parte ancora nemmeno a 180MB utilizzati) e quindi vedrete un andamento in costante aumento di memoria in uso

    - se la memoria e' poca invece il GC scatta in automatico ma lo fa quasi al limite, vedere l'apposito screenshot qui sotto

    - quando la memoria occupata raggiunge il limite, che e' dato dall'eseguibile (quindi 256MB/512MB/1GB), si ha il famoso freeze del gioco

    - un tool esterno come ramrush non potra' MAI "pulire" la memoria al posto del GC

    - il valore della memoria occupata dato dalla mod nella console di IL2 dice solo quanta memoria e' occupata al momento, ma non dice quanta di questa puo' essere liberata dal GC

    - il valore della memoria occupata dato dalla mod non dice quanta sia la memoria massima - questa e' una limitazione data dalla versione del Java utilizzata in IL2 - quindi dovete essere sicuri di avere l'exe giusto e quando mandate un log per vedere che cosa sia successo dovete anche allegare l'eseguibile (il2fb.exe)

    - per vedere effettivamente quanta memoria e' occupata dovete aprire la console e dare il comando GC a mano almeno tre volte, il successivo messaggio stampato dal MemoryLog mod vi dira' quanta memoria e' occupata veramente - visto che questa cosa non serve farla a mano, come spiegato sopra, fatela se siete curiosi solo se state facendo un test e mai durante una missione SEOW

    - quando si entra in missione IL2 non ha gia' piu' bisogno di diversa memoria allocata nello heap, quindi anche il primo messaggio stampato dal MemoryLog non dice la "verita'" sul consumo effettivo al momento iniziale, per vedere il consumo di heap al partire della missione dovete dare il comando GC a mano almeno tre volte - come nel punto sopra: fatelo solo se state facendo un test e mai durante una missione SEOW

    - ultimo punto: ancora non riusciamo a capire perche' eseguibili piu' grandi danno problemi in mission loading e crash immediato nel cockpit, nessuno dei punti precedenti spiega questo problema - ci stiamo lavorando
Immagine

Fatemi sapere se ci sono ancora dei dubbi o cose non chiare che aggiungo le risposte editando il post.
Rispondi