Run idle GC in browser every 1m
This commit is contained in:
parent
a95679c212
commit
4dd7848084
2 changed files with 12 additions and 1 deletions
|
@ -28,7 +28,8 @@ AtomBrowserMainParts* AtomBrowserMainParts::self_ = NULL;
|
||||||
AtomBrowserMainParts::AtomBrowserMainParts()
|
AtomBrowserMainParts::AtomBrowserMainParts()
|
||||||
: browser_(new Browser),
|
: browser_(new Browser),
|
||||||
node_bindings_(NodeBindings::Create(true)),
|
node_bindings_(NodeBindings::Create(true)),
|
||||||
atom_bindings_(new AtomBindings) {
|
atom_bindings_(new AtomBindings),
|
||||||
|
gc_timer_(true, true) {
|
||||||
DCHECK(!self_) << "Cannot have two AtomBrowserMainParts";
|
DCHECK(!self_) << "Cannot have two AtomBrowserMainParts";
|
||||||
self_ = this;
|
self_ = this;
|
||||||
}
|
}
|
||||||
|
@ -75,6 +76,13 @@ void AtomBrowserMainParts::PreMainMessageLoopRun() {
|
||||||
node_bindings_->PrepareMessageLoop();
|
node_bindings_->PrepareMessageLoop();
|
||||||
node_bindings_->RunMessageLoop();
|
node_bindings_->RunMessageLoop();
|
||||||
|
|
||||||
|
// Start idle gc.
|
||||||
|
gc_timer_.Start(
|
||||||
|
FROM_HERE, base::TimeDelta::FromMinutes(1),
|
||||||
|
base::Bind(base::IgnoreResult(&v8::Isolate::IdleNotification),
|
||||||
|
base::Unretained(js_env_->isolate()),
|
||||||
|
1000));
|
||||||
|
|
||||||
brightray::BrowserMainParts::PreMainMessageLoopRun();
|
brightray::BrowserMainParts::PreMainMessageLoopRun();
|
||||||
|
|
||||||
#if defined(USE_X11)
|
#if defined(USE_X11)
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#ifndef ATOM_BROWSER_ATOM_BROWSER_MAIN_PARTS_H_
|
#ifndef ATOM_BROWSER_ATOM_BROWSER_MAIN_PARTS_H_
|
||||||
#define ATOM_BROWSER_ATOM_BROWSER_MAIN_PARTS_H_
|
#define ATOM_BROWSER_ATOM_BROWSER_MAIN_PARTS_H_
|
||||||
|
|
||||||
|
#include "base/timer/timer.h"
|
||||||
#include "brightray/browser/browser_main_parts.h"
|
#include "brightray/browser/browser_main_parts.h"
|
||||||
|
|
||||||
namespace atom {
|
namespace atom {
|
||||||
|
@ -43,6 +44,8 @@ class AtomBrowserMainParts : public brightray::BrowserMainParts {
|
||||||
scoped_ptr<AtomBindings> atom_bindings_;
|
scoped_ptr<AtomBindings> atom_bindings_;
|
||||||
scoped_ptr<NodeDebugger> node_debugger_;
|
scoped_ptr<NodeDebugger> node_debugger_;
|
||||||
|
|
||||||
|
base::Timer gc_timer_;
|
||||||
|
|
||||||
static AtomBrowserMainParts* self_;
|
static AtomBrowserMainParts* self_;
|
||||||
|
|
||||||
DISALLOW_COPY_AND_ASSIGN(AtomBrowserMainParts);
|
DISALLOW_COPY_AND_ASSIGN(AtomBrowserMainParts);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue