From 2e551e7c5f82a7e35d39e8f73e8e526e5484cd5d Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Tue, 10 May 2016 22:50:23 -0700 Subject: [PATCH] altosuilib: Rate limit map loading pacifier updates Just updating the pacifier was consuming a huge amount of CPU. Update no more than once every 100ms. Signed-off-by: Keith Packard --- altosuilib/AltosUIMapPreloadNew.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/altosuilib/AltosUIMapPreloadNew.java b/altosuilib/AltosUIMapPreloadNew.java index cce07ab4..d6c257e0 100644 --- a/altosuilib/AltosUIMapPreloadNew.java +++ b/altosuilib/AltosUIMapPreloadNew.java @@ -153,8 +153,12 @@ public class AltosUIMapPreloadNew extends AltosUIFrame implements ActionListener double latitude, longitude; + long loader_notify_time; + /* AltosMapLoaderListener interfaces */ public void loader_start(final int max) { + loader_notify_time = System.currentTimeMillis(); + SwingUtilities.invokeLater(new Runnable() { public void run() { pbar.setMaximum(max); @@ -167,6 +171,13 @@ public class AltosUIMapPreloadNew extends AltosUIFrame implements ActionListener } public void loader_notify(final int cur, final int max, final String name) { + long now = System.currentTimeMillis(); + + if (now - loader_notify_time < 100) + return; + + loader_notify_time = now; + SwingUtilities.invokeLater(new Runnable() { public void run() { pbar.setValue(cur); -- 2.30.2