CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: complicazio con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 10 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 5 su 5
Discussione:

Cos'é l'heap size???

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Vitoandroide
    Guest
    Question

    Cos'é l'heap size???

    Pura curiosità, che cosa é in java ma sopprattutto a cosa serve e come va settato per migliorare le prestazioni dei nostri androidi

  2.  
  3. #2
    Androidiani Power User L'avatar di androgiallo


    Registrato dal
    Feb 2010
    Località
    Trento
    Messaggi
    7,414
    Smartphone
    Oneplus 2

    Ringraziamenti
    55
    Ringraziato 1,276 volte in 897 Posts
    Predefinito

    potremmo dire che è una specie di cache per le applicazioni...è una memoria dinamica allocata perché le applicazioni usino questo spazio per mettervi i lovo dati in modo dinamico appunto (da ricordare che l'accesso alla RAM è molto più veloce rispetto a quello di una memoria flash)! ti allego un testo che ho trovato googlando un po' che è molto più esauriente:

    VM Heap Size … Che roba è ?

    Spesso nei vari settaggi trovate questa VM Heap size, la quale non è altro che un’area di memoria dinamica allocata per permettere alle applicazioni in esecuzione di poggiarci sopra i loro dati, appunto dinamicamente. In questo modo i dati delle applicazioni vengono richiamati molto velocemente, proprio perché l’accesso alla RAM è molto più veloce che accedere alle memorie flash. Quindi in linea teorica più è grande il valore della VM Heap Size e più il sistema sarà veloce perché tutte le applicazioni lavorano in RAM, ma ciò aumenterà anche la durata della batteria, perché l’I/O su memoria esterna sarà molto più ridotto … In altre parole VM Heap Size è una sorta di cache per le applicazioni.
    Nelle ROM stock in genere questo valore (nascosto ) è settato a 24Mb, ma potrebbe essere un valore abbastanza basso. Perché questo valore è importante ? Perché se saturiamo per esempio i 24 Mb di default, Android è costretto ad iniziare il “garbage collection” (letteralmente “raccolta della monnezza” ), ovvero deve fare spazio in quell’area di memoria spostando i dati più vecchi per fare posto ai nuovi. Quindi avere un giusto valore per il VM Heap Size, consente non solo di ridurre di molto il garbage collection, ma si guadagna anche in durata della batteria, poiché la CPU non è occupata nella “raccolta della monnezza” e può dedicarsi ad altre cose più importanti. Infatti il “garbage collection” è un’attività che impiega svariati cicli di clock ed è quindi un “succhia batteria”, in più si riduce l’I/O tra memoria RAM e memoria FLASH, quindi altro ossigeno per la batteria …
    Ovviamente questo valore deve essere ponderato anche in base alla quantità di RAM del vostro terminale per evitare di togliere troppo a tutto il resto.
    In genere con valori di 512 Mb di RAM (che al momento, per un sistema come Android checchè se ne dica sono più che sufficienti) sul vostro terminale, un VM Heap Size da 40-48 Mb è un buon compromesso, su RAM da 1Gb si potrebbe salire a 64 Mb (mi pare che la MIUI usi proprio questo valore come default).
    Se avete una ROM stock e volete cambiare questo settaggio, dovrete avere almeno i privilegi di root e scaricare dal market per esempio VM Heap Tool

  4. I seguenti 2 Utenti hanno ringraziato androgiallo per il post:

    Pulse (13-12-12)

  5. #3
    Vitoandroide
    Guest
    Predefinito

    Perfetto, io lo sto tenendo a 128 su tablet (1gb di ram) e smartphone (512mb), ho notato che le prestazioni sono molto migliorate anche se non ho ram libera

  6. #4
    Senior Droid L'avatar di Armar


    Registrato dal
    Jun 2012
    Località
    Afragola
    Messaggi
    557
    Smartphone
    Xiaomi Redmi Note 2 Prime

    Ringraziamenti
    222
    Ringraziato 109 volte in 63 Posts
    Predefinito

    In generale (da quanto ricordo dal corso di Algoritmi e Strutture Dati), un heap è una struttura dati, che a seconda del modo di implementazione, pone i dati in maniera diversa. Viene implementato tramite array o lista, e può essere di due tipi:
    Max-Heap
    Min-Heap
    La differenza tra i due, è per l'appunto, il modo in cui i dati vengono memorizzati. Ad esempio, se abbiamo tre numeri (8, 21, 87), nel max heap verranno ordinati in modo che la radice dell'albero contenga il massimo valore, ossia 87, mentre le foglie conterranno 8 e 21.
    Al contrario, nel min-heap, la radice conterrà 8, e le foglie 21 e 87.
    In pratica, alla radice sarà sempre presente il valore più piccolo o il valore più grande che abbiamo.

    Fatta questa premessa, l'heap size è una proprietà dell'heap, che corrisponde al numero degli elementi dell'heap memorizzati nel nostro array o nella nostra lista.
    Vien da se, che maggiore è l'heap size, più grande sarà il nostro albero.
    Risiedendo in memoria ram, l'accesso ad un singolo elemento risulterà poco dispendioso, in quanto esiste una formula (che ad essere sincero non ricordo) per trovare l'elemento che stiamo cercando.
    Aumentando il valore dell'heap size, quindi, facciamo in modo che l'albero binario heap risedente in memoria, sia più grande, migliorando così la velocità di recupero dei dati.
    Occhio però, a non impostare valori troppo alti per l'heap size, in quanto il sistema operativo potrebbe non avere più memoria sufficiente per gestire gli altri processi.
    Spero di essere stato chiaro, alla prossima

  7. I seguenti 3 Utenti hanno ringraziato Armar per il post:

    androgiallo (21-07-12),Pulse (13-12-12)

  8. #5
    Baby Droid


    Registrato dal
    Apr 2011
    Messaggi
    15

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    io ho impostato 256mb su Htc Incredible S CynogenMod 10.1 - Jelly Bean 4.2 e non ho riscontrato problemi...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy