Ben Aston
Ben Aston

Reputation: 55769

Will console.log prevent garbage collection?

If I have an object that would normally be garbage collected, but has been logged to the console, will it still be eligible for garbage collection?

(function(){
  var o = { foo: {} }; 
  console.log(o);
}())

// Can o be collected?

If yes, are there any circumstances where writing to the console (using any of its methods) can affect eligibility for garbage collection?

Edit: I dont believe it will affect eligibility for collection based on watching the heap in Chrome dev tools. But will any category of writing to the console do so?

Upvotes: 22

Views: 2944

Answers (1)

hhelwich
hhelwich

Reputation: 200

If you log an object to the console it can not be garbage collected.

You can verify this by entering in the chrome console:

var Foo = function() {};
console.log(new Foo());

Go to “Profiles” and “Take Heap Snapshot”. This will do a garbage collection automatically. Search for class “Foo”. There will be a 1 in column “Objects count“.

Upvotes: 6

Related Questions