[tor-commits] [vidalia/alpha] Improve network map router loading performance

chiiph at torproject.org chiiph at torproject.org
Mon Jun 25 23:19:57 UTC 2012


commit f853d07f066b909c74dcb5dca0c0582ac63741d3
Author: Tomás Touceda <chiiph at torproject.org>
Date:   Mon Jun 25 20:08:20 2012 -0300

    Improve network map router loading performance
---
 changes/bug6216                          |    3 +++
 src/vidalia/network/NetViewer.cpp        |    6 ++++--
 src/vidalia/network/RouterListWidget.cpp |    1 +
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/changes/bug6216 b/changes/bug6216
new file mode 100644
index 0000000..9484f75
--- /dev/null
+++ b/changes/bug6216
@@ -0,0 +1,3 @@
+  Internal cleanups and improvements:
+  o Improve Network Map router loading performance by disabling sorting with
+    every addition. Resolves ticket 6216.
diff --git a/src/vidalia/network/NetViewer.cpp b/src/vidalia/network/NetViewer.cpp
index 12f2081..2747cd6 100644
--- a/src/vidalia/network/NetViewer.cpp
+++ b/src/vidalia/network/NetViewer.cpp
@@ -73,6 +73,7 @@ NetViewer::NetViewer(QWidget *parent)
 {
   /* Invoke Qt Designer generated QObject setup routine */
   ui.setupUi(this);
+  ui.treeRouterList->setSortingEnabled(false);
 
   ui.lblConsensus->setVisible(false);
   ui.lblOffline->setVisible(false);
@@ -454,14 +455,14 @@ NetViewer::preLoadNetworkStatus()
 void
 NetViewer::loadNetworkStatus()
 {
-  int count = 0, thres = 10;
+  int count = 0, thres = 50;
   for(; _it != _routers.constEnd() and count < thres; ++_it, ++count) {
     addRouter((*_it));
     QCoreApplication::processEvents();
   }
 
   if(_it != _routers.constEnd())
-    QTimer::singleShot(10, this, SLOT(loadNetworkStatus()));
+    QTimer::singleShot(1, this, SLOT(loadNetworkStatus()));
   else {
     QString id = _torControl->getInfo("fingerprint").toString();
     RouterListItem *item = ui.treeRouterList->findRouterById(id);
@@ -470,6 +471,7 @@ NetViewer::loadNetworkStatus()
       ui.lblOffline->setVisible(false);
     }
 
+    ui.treeRouterList->setSortingEnabled(true);
     /* Load existing address mappings */
     loadAddressMap();
     /* Load Circuits and Streams information */
diff --git a/src/vidalia/network/RouterListWidget.cpp b/src/vidalia/network/RouterListWidget.cpp
index eb0d74c..409c99e 100644
--- a/src/vidalia/network/RouterListWidget.cpp
+++ b/src/vidalia/network/RouterListWidget.cpp
@@ -40,6 +40,7 @@ RouterListWidget::RouterListWidget(QWidget *parent)
                                 << tr("Uptime"));
 
   /* Sort by descending server bandwidth */
+  setSortingEnabled(false);
   sortItems(StatusColumn, Qt::DescendingOrder);
 
   /* Find out when the selected item has changed. */





More information about the tor-commits mailing list