Come liberare memoria "in letargo" un processo?


10

Simile a questo: come "ibernare un processo" in Linux / Windows?

Esistono metodi per ibernare un processo in modo che non rimanga in memoria? Ad esempio: se non desidero utilizzare Firefox e non voglio chiuderne il processo e ho bisogno di memoria libera, come posso realmente ibernare il processo in modo da liberare la memoria riservata da Firefox?

Ho bisogno di una soluzione per Windows e Linux!

Risposte:


4

Se non voglio usare Firefox e non voglio chiuderne il processo e ho bisogno di memoria libera, come posso realmente ibernare il processo in modo da liberare la memoria riservata da Firefox?

Per Windows è disponibile Free Process Freezer .

Per Linux e Mac OS X, c'è CrypoPID , come menzionato nella risposta di yeedl .


Se vuoi trovare una soluzione personalizzata:

Cerca process dumpingsu Windows, ad es. ProcDump , riprenderlo con un debugger CLI da WinDBG .

Guarda core dumpingsu Linux, ad es. core , riprenderlo con un debugger CLI come GNU GDB .

Scommetto che una soluzione basata su software che non comporta un debugger è possibile, ma è per Stack Overflow .


Stai cercando un caso d'uso molto specifico, perché non sospenderlo e lasciarlo sostituire?

Passeresti più tempo a far funzionare i tuoi processi e a sospendere ...

Credo che tu possa ottimizzare il tuo flusso di lavoro in un altro modo che sarebbe più fluido.


5

Sia Windows che Linux / Unix forniscono un modo per sospendere o interrompere l'esecuzione di un processo, rimuovendolo dall'elenco dei processi eseguibili.

Ciò non influisce direttamente sulle pagine di memoria di proprietà di un processo, ma con il passare del tempo poiché il sistema è sotto pressione per la memoria, quelle pagine saranno buoni candidati per passare al disco.

Cercare di scrivere un processo su disco per una ripresa successiva non funzionerà per qualcosa di non banale. Gli handle aperti sulla rete e il sistema di finestre non funzioneranno non appena il processo riprende.


Non funzionerebbe neanche per nulla di banale. :) +1
user541686

1
Quelle maniglie aperte vengono appena riaperte o memorizzate insieme, quindi non è un vero problema ...
Tamara Wijsman,

2

So che in Firefox puoi salvare una sessione.

In Linux, questo può essere fatto con CrypoPID .

Questa domanda e questa cercano di rispondere per Windows, ma non sono riuscito a trovare un'ottima soluzione per salvare lo stato di un'applicazione in un file come ho fatto per Linux.


1

Per Windows:

Non conosco alcun modo per sfrattare completamente un processo dalla memoria senza ucciderlo, ma puoi tagliare il suo set di lavoro minimizzando la sua finestra principale. Microsoft ha un articolo che spiega questo: il gruppo di lavoro di un'applicazione viene tagliato quando viene minimizzata la sua finestra di livello superiore .

Quindi, prima minimizza le finestre principali, quindi sospendi il processo come suggerito nella domanda che hai collegato .

È possibile eseguire sia con il sempre utile Process Explorer .

  • Processo clic destro, Finestra -> Riduci a icona
  • Fai di nuovo clic con il tasto destro, Sospendi.

1

Su Windows, alcuni programmi possono scambiare la memoria di programma "non utilizzata".
Un esempio di un prodotto che può farlo è il processo commerciale Lazo .
Tuttavia, anche Process Lasso consiglia di non seguire questa pratica.

Da The Truth about Windows Memory Optimizer :

È meglio lasciare la gestione della memoria virtuale su Windows e non prenderla in mano. Qualsiasi beneficio da questi programmi è un'illusione e temporaneo. Prima o poi si incorre nella penalità della memoria di paging, anche se sembra che il programma eseguito dopo la pulizia si carichi più velocemente.

Ora, per quanto riguarda Firefox, vedi l' uso di memoria Riduzione della memoria di mozillaZine - Firefox , che contiene molti consigli su come scoprire quali estensioni perdono memoria.

C'è anche l'estensione Firefox Memory Fox che:

Tentativo di ridurre l'utilizzo della memoria RAM del browser promuovendo l'aumento delle memorie RAM disponibili per altri processi dell'applicazione requisiti di memoria RAM. Si spera, favorendo qualsiasi tentativo di recupero e conservazione della memoria.

Nella mia esperienza questa estensione rimanda solo l'inevitabile gonfiore di memoria di Firefox. L'unica vera soluzione è quella di chiudere periodicamente Firefox per liberare memoria.


1

È possibile inviare il segnale STOP ai processi in Linux. Un processo interrotto è come in pausa . Per riprenderlo inviare il segnale CONT di processo. Per inviare il segnale puoi fare questo:

kill -STOP process_id

kill -CONT process_id

Un processo interrotto verrà sostituito se il sistema richiede più memoria.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.