Difference between revisions of "0.84/Performance"

From Sugar Labs
Jump to navigation Jump to search
(New page: == Performance == === People === Owner: Marco Pesenti Gritti Peers * Riccardo Lucchese * Tomeu Vizoso === TODO === * Improve startup time of the sugar shell and related services. Thi...)
 
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
<noinclude>{{GoogleTrans-en}}{{TOCright}}</noinclude>[[Category:FeatureLanded]]
 +
 
== Performance ==
 
== Performance ==
  
Line 10: Line 12:
 
* Tomeu Vizoso
 
* Tomeu Vizoso
  
=== TODO ===
+
=== Actions ===
 
 
* Improve startup time of the sugar shell and related services. This will involve dropping unnecessary dependencies and reducing the number of processes by merging the Journal and shell service inside the shell process. '''(tomeu)'''
 
  
 
* Improve activity startup time. We might be to rationalize dependencies a bit. Ensure that the startup animation is not slowing us down. Preload more modules inside rainbow. Import modules lazily where it make sense. '''(marco)'''
 
* Improve activity startup time. We might be to rationalize dependencies a bit. Ensure that the startup animation is not slowing us down. Preload more modules inside rainbow. Import modules lazily where it make sense. '''(marco)'''
  
* The control panel should startup instantaneously. '''(erikos)'''
+
* We are using icons very extensively in the UI and we need a very efficient caching strategy. There are different possible approaches including caching on disk and in the video memory. It should not be hard to do better than we are currently doing, anyway. Drawing and animations performance should benefit a lot. '''(benzea)'''
 
 
* We are using icons very extensively in the UI and we need a very efficient caching strategy. There are different possible approaches including caching on disk and in the video memory. It should not be hard to do better than we are currently doing, anyway. Drawing and animations performance should benefit a lot. '''(marco)'''
 
  
 
* We are very often saving to the datastore unnecessarily and some times in concurrence with other heavy tasks (like switching activities). This is particularly bad on the XO given the compressed file system. '''(marco)'''
 
* We are very often saving to the datastore unnecessarily and some times in concurrence with other heavy tasks (like switching activities). This is particularly bad on the XO given the compressed file system. '''(marco)'''
  
* Switching between zoom views causes a lot of unnecessary redrawing and flickering. Should be reasonably easy to fix. '''(marco)'''
+
=== Ideas ===
 
 
==== Unassigned ====
 
  
 
* Composition would help activity switching and the frame animation a lot. We cannot turn it on for all the windows for memory reason but it might be reasonable to composite the current active activity and the frame. It has a cost anyway, so we should see if we can improve drawing efficiency instead.
 
* Composition would help activity switching and the frame animation a lot. We cannot turn it on for all the windows for memory reason but it might be reasonable to composite the current active activity and the frame. It has a cost anyway, so we should see if we can improve drawing efficiency instead.
Line 30: Line 26:
 
* The current implementation of thumbnailing requires to take several screenshots of the activity window synchronously on basically every window stack change. Short term solution is to compromise on the accuracy of the screenshots to take them less often and improve performance. Long term we should look into using composition or gtk off-screen rendering to be able to take a screenshot even when the window is hidden/idle.
 
* The current implementation of thumbnailing requires to take several screenshots of the activity window synchronously on basically every window stack change. Short term solution is to compromise on the accuracy of the screenshots to take them less often and improve performance. Long term we should look into using composition or gtk off-screen rendering to be able to take a screenshot even when the window is hidden/idle.
  
=== Status ===
+
=== Done ===
  
* Several heavy shell dependency has been dropped.
+
* Improve startup time of the sugar shell and related services. This will involve dropping unnecessary dependencies and reducing the number of processes by merging the Journal and shell service inside the shell process. '''(tomeu)'''
* Merge of the journal and of the shell service into the shell is in progress.
+
 
* Patches to take screenshots less often are available.
+
* The control panel should startup instantaneously. To speed up the loading of each module we want to make the module self contained and register things on __init__.py '''(erikos)'''
 +
 
 +
* Switching between zoom views causes a lot of unnecessary redrawing and flickering. Should be reasonably easy to fix. '''(marco)'''

Latest revision as of 14:22, 5 November 2013

Performance

People

Owner: Marco Pesenti Gritti

Peers

  • Riccardo Lucchese
  • Tomeu Vizoso

Actions

  • Improve activity startup time. We might be to rationalize dependencies a bit. Ensure that the startup animation is not slowing us down. Preload more modules inside rainbow. Import modules lazily where it make sense. (marco)
  • We are using icons very extensively in the UI and we need a very efficient caching strategy. There are different possible approaches including caching on disk and in the video memory. It should not be hard to do better than we are currently doing, anyway. Drawing and animations performance should benefit a lot. (benzea)
  • We are very often saving to the datastore unnecessarily and some times in concurrence with other heavy tasks (like switching activities). This is particularly bad on the XO given the compressed file system. (marco)

Ideas

  • Composition would help activity switching and the frame animation a lot. We cannot turn it on for all the windows for memory reason but it might be reasonable to composite the current active activity and the frame. It has a cost anyway, so we should see if we can improve drawing efficiency instead.
  • The current implementation of thumbnailing requires to take several screenshots of the activity window synchronously on basically every window stack change. Short term solution is to compromise on the accuracy of the screenshots to take them less often and improve performance. Long term we should look into using composition or gtk off-screen rendering to be able to take a screenshot even when the window is hidden/idle.

Done

  • Improve startup time of the sugar shell and related services. This will involve dropping unnecessary dependencies and reducing the number of processes by merging the Journal and shell service inside the shell process. (tomeu)
  • The control panel should startup instantaneously. To speed up the loading of each module we want to make the module self contained and register things on __init__.py (erikos)
  • Switching between zoom views causes a lot of unnecessary redrawing and flickering. Should be reasonably easy to fix. (marco)