From 4288e790444b7b3487c71bd97a7cf762c9c8737b Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Wed, 29 May 2013 11:15:07 +0300 Subject: [PATCH] Change Ember.run.later to setTimeout in periodic actions It seems that running Ember.run.later periodically can cause CPU usage to increase over time. Such increase adds up to already increasing CPU usage because of data amount growing. This commit tries to mitigate the issue by using setTimeout instead --- assets/scripts/app/controllers/repo.coffee | 4 ++-- assets/scripts/app/controllers/repos.coffee | 4 ++-- assets/scripts/lib/travis/ticker.coffee | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/assets/scripts/app/controllers/repo.coffee b/assets/scripts/app/controllers/repo.coffee index bf5e0de7..bd1c6306 100644 --- a/assets/scripts/app/controllers/repo.coffee +++ b/assets/scripts/app/controllers/repo.coffee @@ -9,7 +9,7 @@ Travis.RepoController = Travis.Controller.extend init: -> @_super.apply this, arguments - Ember.run.later(@updateTimes.bind(this), Travis.INTERVALS.updateTimes) + setTimeout(@updateTimes.bind(this), Travis.INTERVALS.updateTimes) updateTimes: -> if builds = @get('builds') @@ -21,7 +21,7 @@ Travis.RepoController = Travis.Controller.extend if build && jobs = build.get('jobs') jobs.forEach (j) -> j.updateTimes() - Ember.run.later(@updateTimes.bind(this), Travis.INTERVALS.updateTimes) + setTimeout(@updateTimes.bind(this), Travis.INTERVALS.updateTimes) activate: (action) -> @_unbind() diff --git a/assets/scripts/app/controllers/repos.coffee b/assets/scripts/app/controllers/repos.coffee index 19376b87..0e626ff4 100644 --- a/assets/scripts/app/controllers/repos.coffee +++ b/assets/scripts/app/controllers/repos.coffee @@ -27,7 +27,7 @@ Travis.ReposController = Ember.ArrayController.extend init: -> @_super.apply this, arguments - Ember.run.later(@updateTimes.bind(this), Travis.INTERVALS.updateTimes) + setTimeout(@updateTimes.bind(this), Travis.INTERVALS.updateTimes) recentRepos: (-> Travis.Repo.find() @@ -44,7 +44,7 @@ Travis.ReposController = Ember.ArrayController.extend if content = @get('content') content.forEach (r) -> r.updateTimes() - Ember.run.later(@updateTimes.bind(this), Travis.INTERVALS.updateTimes) + setTimeout(@updateTimes.bind(this), Travis.INTERVALS.updateTimes) activate: (tab, params) -> @set('sortProperties', null) diff --git a/assets/scripts/lib/travis/ticker.coffee b/assets/scripts/lib/travis/ticker.coffee index 81f14517..a3a14c4b 100644 --- a/assets/scripts/lib/travis/ticker.coffee +++ b/assets/scripts/lib/travis/ticker.coffee @@ -11,4 +11,4 @@ @schedule() schedule: -> - Ember.run.later((=> @tick()), @get('interval') || Travis.TICK_INTERVAL) + setTimeout((=> @tick()), @get('interval') || Travis.TICK_INTERVAL)