Articles of gestione della memoria

Qual è la differenza tra “new” e “malloc” e “calloc” in C ++?

Qual è la differenza tra “nuovo” e “malloc” e “calloc” e altri in famiglia? (Quando) Ho bisogno di qualcosa di diverso da “nuovo”? Uno di questi è implementato usando un altro?

È volatile costoso?

Dopo aver letto il ricettario JSR-133 per i compilatori di scrittori sull’implementazione della volatile, in particolare la sezione “Interazioni con le istruzioni atomiche” presumo che leggere una variabile volatile senza aggiornarlo abbia bisogno di una LoadLoad o di una barriera LoadStore. Più in basso nella pagina vedo che LoadLoad e LoadStore sono effettivamente non operativi […]

Does = variabile null lo ha impostato per la garbage collection

Aiutami a risolvere una controversia con un collaboratore: l’impostazione di una variabile o di una raccolta su null in Java aiuta nella raccolta dei dati inutili e riduce l’utilizzo della memoria? Se ho un programma a esecuzione prolungata e ogni funzione può essere chiamata iterativamente (potenzialmente migliaia di volte): l’impostazione di tutte le variabili in […]

Perché devo chiamare super -dialloc per ultimo, e non prima?

esempio corretto: – (void)dealloc { [viewController release]; [window release]; [super dealloc]; } esempio sbagliato: – (void)dealloc { [super dealloc]; [viewController release]; [window release]; } Altrimenti, in tutti gli altri casi, quando sostituisco un metodo che chiamerei prima l’implementazione del metodo del super, in questo caso Apple chiama sempre [super dealloc] alla fine. Perché?

Chiama gratis o cancella mai la memoria di rilascio nel “sistema”

Ecco la mia domanda: chiama gratis o cancella sempre la memoria di rilascio sul “sistema”. Per sistema intendo, riduce mai il segmento di dati del processo? Consideriamo l’allocatore di memoria su Linux, ad esempio ptmalloc. Da quello che so (correggimi se ho torto), ptmalloc mantiene una lista libera di blocchi di memoria e quando arriva […]

Profilazione del profilo Perl e rilevamento delle perdite?

Ho scritto un servizio di rete persistente in Perl che gira su Linux. Sfortunatamente, durante la sua esecuzione, il Resident Stack Size (RSS) cresce, cresce e cresce lentamente ma inesorabilmente. Ciò nonostante gli sforzi diligenti da parte mia di eliminare definitivamente tutte le chiavi di hash non necessarie ed eliminare tutti i riferimenti a oggetti […]

Lista più efficiente del metodo data.frame?

Ho appena avuto una conversazione con i colleghi su questo, e abbiamo pensato che sarebbe valsa la pena vedere quello che le persone in terra SO avevano da dire. Supponiamo di avere una lista con N elementi, in cui ogni elemento era un vettore di lunghezza X. Ora supponiamo che volessi trasformarlo in un data.frame. […]

perché le dimensioni della memoria dello stack sono così limitate?

Quando si assegna memoria all’heap, l’unico limite è la RAM libera (o memoria virtuale). Rende Gb di memoria. Quindi, perché le dimensioni dello stack sono così limitate (circa 1 Mb)? Quale motivo tecnico ti impedisce di creare oggetti davvero grandi nello stack? Aggiornamento : il mio intento potrebbe non essere chiaro, non voglio allocare oggetti […]

C’è un modo per determinare la dimensione di un array C ++ a livello di programmazione? E se no, perché?

Questa domanda è stata ispirata da una domanda simile: come elimina [] “sapere” la dimensione della matrice di operandi? La mia domanda è leggermente diversa: esiste un modo per determinare la dimensione di un array C ++ a livello di codice? E se no, perché? Ogni funzione che ho visto che richiede un array richiede […]

Dove sono le variabili costanti memorizzate in C?

Mi chiedo dove sono memorizzate le variabili costanti. Si trova nella stessa area di memoria delle variabili globali? O è in pila?