Merge lp:~mvo/software-center/speedup2 into lp:software-center

Proposed by Michael Vogt
Status: Merged
Merged at revision: 3141
Proposed branch: lp:~mvo/software-center/speedup2
Merge into: lp:software-center
Diff against target: 144 lines (+21/-10)
7 files modified
software-center (+2/-1)
softwarecenter/i18n.py (+2/-2)
softwarecenter/region.py (+3/-2)
softwarecenter/ui/gtk3/app.py (+4/-2)
softwarecenter/ui/gtk3/panes/installedpane.py (+1/-1)
softwarecenter/ui/gtk3/panes/softwarepane.py (+3/-1)
softwarecenter/ui/gtk3/views/purchaseview.py (+6/-1)
To merge this branch: bzr merge lp:~mvo/software-center/speedup2
Reviewer Review Type Date Requested Status
Gary Lasker (community) Approve
Review via email: mp+122059@code.launchpad.net

Description of the change

This improves startup time on the rasberry pi and the atom based
netbook. Its about 1s quicker to show the window and 2s until its
visible on atom netbook

To post a comment you must log in.
lp:~mvo/software-center/speedup2 updated
3137. By Michael Vogt

softwarecenter/region.py: use lxml here as well

3138. By Michael Vogt

softwarecenter/region.py: delay import

Revision history for this message
Gary Lasker (gary-lasker) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'software-center'
2--- software-center 2012-08-10 13:23:52 +0000
3+++ software-center 2012-08-30 13:05:21 +0000
4@@ -128,7 +128,8 @@
5 Gtk.init_check(sys.argv)
6
7 # create the app
8- from softwarecenter.ui.gtk3.app import SoftwareCenterAppGtk3
9+ with ExecutionTime("import SoftwareCenterApp"):
10+ from softwarecenter.ui.gtk3.app import SoftwareCenterAppGtk3
11 with ExecutionTime("create SoftwareCenterApp"):
12 app = SoftwareCenterAppGtk3(datadir, xapian_base_path, options, args)
13
14
15=== modified file 'softwarecenter/i18n.py'
16--- softwarecenter/i18n.py 2012-04-12 14:25:07 +0000
17+++ softwarecenter/i18n.py 2012-08-30 13:05:21 +0000
18@@ -74,12 +74,12 @@
19
20
21 def langcode_to_name(langcode):
22- import xml.etree.ElementTree
23+ from lxml import etree
24 from gettext import dgettext
25 for iso in ["iso_639_3", "iso_639"]:
26 path = os.path.join("/usr/share/xml/iso-codes/", iso + ".xml")
27 if os.path.exists(path):
28- root = xml.etree.ElementTree.parse(path)
29+ root = etree.parse(path)
30 xpath = ".//%s_entry[@part1_code='%s']" % (iso, langcode)
31 match = root.find(xpath)
32 if match is not None:
33
34=== modified file 'softwarecenter/region.py'
35--- softwarecenter/region.py 2012-03-15 10:43:13 +0000
36+++ softwarecenter/region.py 2012-08-30 13:05:21 +0000
37@@ -24,7 +24,7 @@
38 import locale
39 import logging
40 import os
41-import xml.etree.ElementTree
42+
43 from gettext import dgettext
44 from gettext import gettext as _
45
46@@ -42,12 +42,13 @@
47
48 def get_region_name(countrycode):
49 """ return translated region name from countrycode using iso3166 """
50+ from lxml import etree
51 # find translated name
52 if countrycode:
53 for iso in ["iso_3166", "iso_3166_2"]:
54 path = os.path.join("/usr/share/xml/iso-codes/", iso + ".xml")
55 if os.path.exists(path):
56- root = xml.etree.ElementTree.parse(path)
57+ root = etree.parse(path)
58 xpath = ".//%s_entry[@alpha_2_code='%s']" % (iso, countrycode)
59 match = root.find(xpath)
60 if match is not None:
61
62=== modified file 'softwarecenter/ui/gtk3/app.py'
63--- softwarecenter/ui/gtk3/app.py 2012-08-16 14:44:29 +0000
64+++ softwarecenter/ui/gtk3/app.py 2012-08-30 13:05:21 +0000
65@@ -92,8 +92,10 @@
66 import softwarecenter.ui.gtk3.dialogs as dialogs
67
68 from softwarecenter.ui.gtk3.SimpleGtkbuilderApp import SimpleGtkbuilderApp
69-from softwarecenter.ui.gtk3.panes.installedpane import InstalledPane
70-from softwarecenter.ui.gtk3.panes.availablepane import AvailablePane
71+with ExecutionTime("import InstalledPane"):
72+ from softwarecenter.ui.gtk3.panes.installedpane import InstalledPane
73+with ExecutionTime("import AvailablePane"):
74+ from softwarecenter.ui.gtk3.panes.availablepane import AvailablePane
75 from softwarecenter.ui.gtk3.panes.historypane import HistoryPane
76 from softwarecenter.ui.gtk3.panes.globalpane import GlobalPane
77 from softwarecenter.ui.gtk3.panes.pendingpane import PendingPane
78
79=== modified file 'softwarecenter/ui/gtk3/panes/installedpane.py'
80--- softwarecenter/ui/gtk3/panes/installedpane.py 2012-06-28 08:51:44 +0000
81+++ softwarecenter/ui/gtk3/panes/installedpane.py 2012-08-30 13:05:21 +0000
82@@ -40,7 +40,7 @@
83 from softwarecenter.ui.gtk3.widgets.oneconfviews import OneConfViews
84 from softwarecenter.ui.gtk3.widgets.spinner import SpinnerNotebook
85 from softwarecenter.ui.gtk3.views.appview import AppView
86-from softwarepane import SoftwarePane
87+from softwarecenter.ui.gtk3.panes.softwarepane import SoftwarePane
88 from softwarecenter.backend.oneconfhandler import get_oneconf_handler
89 from softwarecenter.db.appfilter import AppFilter
90 from softwarecenter.paths import APP_INSTALL_PATH
91
92=== modified file 'softwarecenter/ui/gtk3/panes/softwarepane.py'
93--- softwarecenter/ui/gtk3/panes/softwarepane.py 2012-08-22 06:49:53 +0000
94+++ softwarecenter/ui/gtk3/panes/softwarepane.py 2012-08-30 13:05:21 +0000
95@@ -43,7 +43,6 @@
96 from softwarecenter.ui.gtk3.widgets.searchaid import SearchAid
97
98 from softwarecenter.ui.gtk3.views.appview import AppView
99-from softwarecenter.ui.gtk3.views.appdetailsview import AppDetailsView
100
101 from softwarecenter.ui.gtk3.session.displaystate import DisplayState
102
103@@ -152,6 +151,9 @@
104 self.scroll_details = Gtk.ScrolledWindow()
105 self.scroll_details.set_policy(Gtk.PolicyType.AUTOMATIC,
106 Gtk.PolicyType.AUTOMATIC)
107+ # delayed import gives ~1s speedup until visible on the raspi
108+ with ExecutionTime("import AppDetailsView"):
109+ from softwarecenter.ui.gtk3.views.appdetailsview import AppDetailsView
110 with ExecutionTime("SoftwarePane.AppDetailsView"):
111 self.app_details_view = AppDetailsView(self.db,
112 self.distro,
113
114=== modified file 'softwarecenter/ui/gtk3/views/purchaseview.py'
115--- softwarecenter/ui/gtk3/views/purchaseview.py 2012-08-30 08:22:32 +0000
116+++ softwarecenter/ui/gtk3/views/purchaseview.py 2012-08-30 13:05:21 +0000
117@@ -33,7 +33,6 @@
118 from softwarecenter.ui.gtk3.dialogs import show_accept_tos_dialog
119 from softwarecenter.config import get_config
120 from softwarecenter.ui.gtk3.utils import get_parent
121-from softwarecenter.ui.gtk3.widgets.webkit import ScrolledWebkitWindow
122
123 LOG = logging.getLogger(__name__)
124
125@@ -111,6 +110,10 @@
126
127 def init_view(self):
128 if self.wk is None:
129+ # delaying this import make the window appear on the raspi
130+ # 3s quicker
131+ from softwarecenter.ui.gtk3.widgets.webkit import (
132+ ScrolledWebkitWindow)
133 self.wk = ScrolledWebkitWindow()
134 # automatically fill in the email in the login page
135 self.wk.webkit.set_auto_insert_email(self.config.email)
136@@ -186,6 +189,8 @@
137 return True
138
139 def _on_create_web_view(self, view, frame):
140+ from softwarecenter.ui.gtk3.widgets.webkit import (
141+ ScrolledWebkitWindow)
142 win = Gtk.Window()
143 win.set_size_request(400, 400)
144 wk = ScrolledWebkitWindow(include_progress_ui=True)

Subscribers

People subscribed via source and target branches