Memory Efficient GNOME Architecture

2,750 views

Published on

Presentation made in GUADEC 2006 about how in maemo we've been tackling some of the problems GNOME architecture has on devices with limited amount of memory.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,750
On SlideShare
0
From Embeds
0
Number of Embeds
47
Actions
Shares
0
Downloads
596
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Memory Efficient GNOME Architecture

  1. 1. Memory Efficient GNOME Architecture <ul><ul><li>Tommi Komulainen <tommi.komulainen@nokia.com> </li></ul></ul>
  2. 2. Outline <ul><li>Problems </li></ul><ul><li>Solving the problems in Maemo </li></ul>
  3. 3. Problems <ul><li>Processes, processes, processes... </li></ul><ul><li>Data duplication </li></ul>
  4. 4. Processes <ul><li>System services </li></ul><ul><ul><li>dbus-daemon, dbus-daemon, gconfd-2, gnome-vfs-daemon, ... </li></ul></ul><ul><li>Applets </li></ul><ul><ul><li>Home (5+1), Task Navigator (4), Status bar (5+2) </li></ul></ul><ul><li>Applications </li></ul><ul><ul><li>Short-lived message passing </li></ul></ul>
  5. 5. Data duplication <ul><li>Memory structures re-created in every application </li></ul><ul><ul><li>GObject classes, fonts, gtkrc </li></ul></ul><ul><li>...from data that hardly ever changes </li></ul><ul><li>Tools lacking </li></ul>
  6. 6. Solving the problems in Maemo <ul><li>In-process applets </li></ul><ul><li>Every application is a D-BUS service </li></ul><ul><li>maemo-launcher </li></ul><ul><li>Background killing applications </li></ul>
  7. 7. In-process applets <ul><li>Crashing is not an option! </li></ul>
  8. 8. Every application is a D-BUS service <ul><li>One IPC to rule them all </li></ul><ul><li>Single-instance </li></ul><ul><ul><li>[Desktop Entry] Type=Application Name=Web Exec=/usr/bin/browser X-Osso-Service=com.nokia.osso_browser </li></ul></ul>
  9. 9. Maemo-launcher <ul><li>Copy-on-write hack for reducing the process overhead </li></ul>
  10. 10. Background killing applications <ul><li>State saving </li></ul><ul><li>Session Management on application level </li></ul>
  11. 11. Conclusion
  12. 12. Questions? <ul><li>Comments, flames, beer? </li></ul>

×