Allocamento memoria

di il
11 risposte

Allocamento memoria

Salve, so che questo non è un forum dedicato a minecraft, ma ho un problema con l'allocazione della memoria di java che non mi riesco a spiegare, il codice che ho utilizato è il seguente:
(-XX:+UseG1GC -Xmx4G -Xms4G -Dsun.rmi.dgc.server.gcInterval=2147483646 -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M).
Ma la ram continua a salire gradualmente di utilizzo, da un iniziale 38% fino a un massimale del 74% in modo ciclico,come posso fare per renderlo stabile?

Vi ringrazio in anticipo.

11 Risposte

  • Re: Allocamento memoria

    .
  • Re: Allocamento memoria

    No la stringa che ho messo l'ho trovata facendo varie ricerche su internet, e non saprei impostarlo di mano mia dato che non ho mai trattato java, ho cercato per tantissimi forum una soluzione costruttiva al problema, ma nessuno mi ha saputo dare una risposta utile al problema, sto chiedendo a voi perchè trattate tutti i giorni questo genere di problemi, e credo che nessuno meglio di voi mi possa aiutare.

    Se vi sto recando fastidi vi capisco, ma sui i link che mi hai passato dovrei studiare tutto e purtroppo non ho il tempo materiale per farlo, se trovate un modi per modificarla e risolvere ve ne sarei molto grato.
  • Re: Allocamento memoria

    @Eldon90: mi spieghi una cosa innanzitutto? Cosa stai usando esattamente che ha bisogno di poter usare un massimo di 4 Gigabyte di heap space?? (e chiaramente su macchina a 64 bit)
  • Re: Allocamento memoria

    Come detto in precedenza, non ho dimistichezza sulla programmazione java, e ho dovuto prendere una stringa su internet, che secondo alcuni funzionasse bene,comunque attualmente la devo usare per minecraft, ma a quanto pare il problema dovrebbe essere il garbage collector, o almeno credo
  • Re: Allocamento memoria

    .
  • Re: Allocamento memoria

    Eldon90 ha scritto:


    Come detto in precedenza, non ho dimistichezza sulla programmazione java, e ho dovuto prendere una stringa su internet, che secondo alcuni funzionasse bene,comunque attualmente la devo usare per minecraft, ma a quanto pare il problema dovrebbe essere il garbage collector, o almeno credo
    Dovresti anche precisare: QUALE runtime Java stai usando. Le opzioni che hai citato sono sostanzialmente tutte "non standard", cioè possono cambiare da una versione all'altra del runtime, possono sparire, ecc...

    Inoltre tieni presente che quando si parla di configurare il garbage collection, bisogna appunto sapere bene la versione del runtime Java. Specialmente nelle release più recenti di JDK/JRE Oracle (tra la 7 e la 9 se non sbaglio) sono state fatte un po' di variazioni sul fronte del g.c.

    E se facciamo i fini, bisogna anche dire che con un heap space davvero enorme (tipo appunto intorno a 4 giga) bisogna saper configurare BENE quale tipo di g.c. far girare. Perché se si usa quello non appropriato, si rischia che il g.c. debba spazzolarsi un heap space enorme troppo spesso. E questo sarebbe un problema.
  • Re: Allocamento memoria

    Allora utilizzo windows 7 64bit, java è l'8 versione 171, attualmente ho 8G di ram in tutto e con 4 allocati lavora intorno all'80%, cpu ho una vecchia AMD phenom II X6 1055T.
    Comunque la stringa è praticamente quella di minecraft base, prima ho controllato per vedere le modifiche che gli hanno fatto, e hanno aggiunto solamente -XX:+UseG1GC che se non mi sbaglio dovrebbe essere il garbage collector, aggiunto il -Xms, e questa stringa(-Dsun.rmi.dgc.server.gcInterval=2147483646) che non so cosa sia, e se non mi sbaglio hanno aumentato l'heap da 16 a 32.

    Per il resto è uguale alla stringa base, ho provato a cancellare (-Dsun.rmi.dgc.server.gcInterval=2147483646) e un poco è migliorato ma rimane comunque instabile
  • Re: Allocamento memoria

    andbin ha scritto:


    Eldon90 ha scritto:


    Come detto in precedenza, non ho dimistichezza sulla programmazione java, e ho dovuto prendere una stringa su internet, che secondo alcuni funzionasse bene,comunque attualmente la devo usare per minecraft, ma a quanto pare il problema dovrebbe essere il garbage collector, o almeno credo
    Dovresti anche precisare: QUALE runtime Java stai usando. Le opzioni che hai citato sono sostanzialmente tutte "non standard", cioè possono cambiare da una versione all'altra del runtime, possono sparire, ecc...

    Inoltre tieni presente che quando si parla di configurare il garbage collection, bisogna appunto sapere bene la versione del runtime Java. Specialmente nelle release più recenti di JDK/JRE Oracle (tra la 7 e la 9 se non sbaglio) sono state fatte un po' di variazioni sul fronte del g.c.

    E se facciamo i fini, bisogna anche dire che con un heap space davvero enorme (tipo appunto intorno a 4 giga) bisogna saper configurare BENE quale tipo di g.c. far girare. Perché se si usa quello non appropriato, si rischia che il g.c. debba spazzolarsi un heap space enorme troppo spesso. E questo sarebbe un problema.
    Quindi è una sorta di ritondanza ciclica? comunque dove posso vedere il run time? cosi ve lo comunico.
  • Re: Allocamento memoria

    .
  • Re: Allocamento memoria

    Java è a 64 bit, comunque non saprei che tipo di informazioni o riferimenti vi possano aiutare, purtroppo sto girando abbastanza alla cieca. Sul fatto della memoria che salga è scenda so che è normale, il fatto è che li fa in un modo troppo ciclico non è una variazione continua, ma un salire da valore A fino a valore B, e provoca vari stuttering.
  • Re: Allocamento memoria

    Ho trovato un'altra stringa che sembra funzionare molto meglio, vorrei un vostro parare, se vi sembra apposto o c'è qualcosa che non torna

    -Xmx3G -Xms3G -Xmn768m -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+UseNUMA -XX:+CMSParallelRemarkEnabled -XX:MaxTenuringThreshold=15 -XX:MaxGCPauseMillis=30 -XX:GCPauseIntervalMillis=150 -XX:+UseAdaptiveGCBoundary -XX:-UseGCOverheadLimit -XX:+UseBiasedLocking -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=15 -Dfml.ignorePatchDiscrepancies=true -Dfml.ignoreInvalidMinecraftCertificates=true -XX:+UseFastAccessorMethods -XX:+UseCompressedOops -XX:+OptimizeStringConcat -XX:+AggressiveOpts -XX:ReservedCodeCacheSize=2048m -XX:+UseCodeCacheFlushing -XX:SoftRefLRUPolicyMSPerMB=10000 -XX:ParallelGCThreads=10
Devi accedere o registrarti per scrivere nel forum
11 risposte