How to clean up R memory without the need to restart R session
I know there are plenty of similar questions with accepted answer (here, here or even this), but so far nowhere I found a clear answer on how to free some memory space without restarting your R session.
I know, one could save his workspace, restart R and load back the workspace but:
- I am not sure, but doing so you will have to load back all the libraries right?
- If your workspace is huge, it may take time to do so, and if I do that quite often I don't want to loose time each time I do it.
- If I delete a big object, isn't just a normal behavior to actually release the memory this object was occupying?
This doesn't seem to be the case. Even after removing half of the biggest objects of my workspace (thanks to this great answer) and after running gc(), top still gives me the exact same % of memory used.
Here in a comment it says:
R's garbage collection "marks" the RAM as available. Up to your OS to
reclaim that
Sounds ok but not sure this really happen. top still shows me the same amount of memory used by R even after rm() and gc(), and even after starting new other process in the os, and even after 2h, 10h or 3 days.
This comment suggest that it has to see with loaded libraries and graphic devices, but why? and how I can solve it?
If I rm() a 3GB object and then use gc() to free the memory, how is it possible that R still use the same percentage of memory?
r memory garbage-collection
add a comment |
I know there are plenty of similar questions with accepted answer (here, here or even this), but so far nowhere I found a clear answer on how to free some memory space without restarting your R session.
I know, one could save his workspace, restart R and load back the workspace but:
- I am not sure, but doing so you will have to load back all the libraries right?
- If your workspace is huge, it may take time to do so, and if I do that quite often I don't want to loose time each time I do it.
- If I delete a big object, isn't just a normal behavior to actually release the memory this object was occupying?
This doesn't seem to be the case. Even after removing half of the biggest objects of my workspace (thanks to this great answer) and after running gc(), top still gives me the exact same % of memory used.
Here in a comment it says:
R's garbage collection "marks" the RAM as available. Up to your OS to
reclaim that
Sounds ok but not sure this really happen. top still shows me the same amount of memory used by R even after rm() and gc(), and even after starting new other process in the os, and even after 2h, 10h or 3 days.
This comment suggest that it has to see with loaded libraries and graphic devices, but why? and how I can solve it?
If I rm() a 3GB object and then use gc() to free the memory, how is it possible that R still use the same percentage of memory?
r memory garbage-collection
I still haven't any rational explenation for that. I saw the optionreset=TRUEingc(), sometime it helps to actually free the memory but sometime not. I realize that if I dorm(object)andgc()right after the generation of the big object it works, but if I do other things in-between no, though I am not sure what are the exact things that make therm()useless
– Simon C.
Nov 28 '18 at 16:33
add a comment |
I know there are plenty of similar questions with accepted answer (here, here or even this), but so far nowhere I found a clear answer on how to free some memory space without restarting your R session.
I know, one could save his workspace, restart R and load back the workspace but:
- I am not sure, but doing so you will have to load back all the libraries right?
- If your workspace is huge, it may take time to do so, and if I do that quite often I don't want to loose time each time I do it.
- If I delete a big object, isn't just a normal behavior to actually release the memory this object was occupying?
This doesn't seem to be the case. Even after removing half of the biggest objects of my workspace (thanks to this great answer) and after running gc(), top still gives me the exact same % of memory used.
Here in a comment it says:
R's garbage collection "marks" the RAM as available. Up to your OS to
reclaim that
Sounds ok but not sure this really happen. top still shows me the same amount of memory used by R even after rm() and gc(), and even after starting new other process in the os, and even after 2h, 10h or 3 days.
This comment suggest that it has to see with loaded libraries and graphic devices, but why? and how I can solve it?
If I rm() a 3GB object and then use gc() to free the memory, how is it possible that R still use the same percentage of memory?
r memory garbage-collection
I know there are plenty of similar questions with accepted answer (here, here or even this), but so far nowhere I found a clear answer on how to free some memory space without restarting your R session.
I know, one could save his workspace, restart R and load back the workspace but:
- I am not sure, but doing so you will have to load back all the libraries right?
- If your workspace is huge, it may take time to do so, and if I do that quite often I don't want to loose time each time I do it.
- If I delete a big object, isn't just a normal behavior to actually release the memory this object was occupying?
This doesn't seem to be the case. Even after removing half of the biggest objects of my workspace (thanks to this great answer) and after running gc(), top still gives me the exact same % of memory used.
Here in a comment it says:
R's garbage collection "marks" the RAM as available. Up to your OS to
reclaim that
Sounds ok but not sure this really happen. top still shows me the same amount of memory used by R even after rm() and gc(), and even after starting new other process in the os, and even after 2h, 10h or 3 days.
This comment suggest that it has to see with loaded libraries and graphic devices, but why? and how I can solve it?
If I rm() a 3GB object and then use gc() to free the memory, how is it possible that R still use the same percentage of memory?
r memory garbage-collection
r memory garbage-collection
edited Nov 28 '18 at 16:29
Simon C.
asked Nov 16 '18 at 8:15
Simon C.Simon C.
446420
446420
I still haven't any rational explenation for that. I saw the optionreset=TRUEingc(), sometime it helps to actually free the memory but sometime not. I realize that if I dorm(object)andgc()right after the generation of the big object it works, but if I do other things in-between no, though I am not sure what are the exact things that make therm()useless
– Simon C.
Nov 28 '18 at 16:33
add a comment |
I still haven't any rational explenation for that. I saw the optionreset=TRUEingc(), sometime it helps to actually free the memory but sometime not. I realize that if I dorm(object)andgc()right after the generation of the big object it works, but if I do other things in-between no, though I am not sure what are the exact things that make therm()useless
– Simon C.
Nov 28 '18 at 16:33
I still haven't any rational explenation for that. I saw the option
reset=TRUE in gc(), sometime it helps to actually free the memory but sometime not. I realize that if I do rm(object) and gc() right after the generation of the big object it works, but if I do other things in-between no, though I am not sure what are the exact things that make the rm() useless– Simon C.
Nov 28 '18 at 16:33
I still haven't any rational explenation for that. I saw the option
reset=TRUE in gc(), sometime it helps to actually free the memory but sometime not. I realize that if I do rm(object) and gc() right after the generation of the big object it works, but if I do other things in-between no, though I am not sure what are the exact things that make the rm() useless– Simon C.
Nov 28 '18 at 16:33
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53333858%2fhow-to-clean-up-r-memory-without-the-need-to-restart-r-session%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53333858%2fhow-to-clean-up-r-memory-without-the-need-to-restart-r-session%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
I still haven't any rational explenation for that. I saw the option
reset=TRUEingc(), sometime it helps to actually free the memory but sometime not. I realize that if I dorm(object)andgc()right after the generation of the big object it works, but if I do other things in-between no, though I am not sure what are the exact things that make therm()useless– Simon C.
Nov 28 '18 at 16:33