r3 - 22 Aug 2006 - 14:51:23 - TravisVachonYou are here: OSAF >  Journal Web  >  ContributorNotes > TravisVachonNotes > ReminderMemoryExperiments20060821

Both experiments performed on a 1.6GHz machine with 768MB RAM running Ubuntu Linux with a 3GB swap space.

Data collected with top. According to man top:

Virtual Memory The total amount of virtual memory used by task (swap + res)
Resident Memory The non-swapped physical memory a task has used (code + data)
Shared Memory The amount of shared memory used by a task (memory that could be shared with other processes)

Sparkline graphs generated dynamically by Joe Gregorio's Sparkline Generator Web Application

Experiment 1: Benchmarking

Procedure

  1. Start Chandler with ./release/RunChandler --nonexclusive --create
  2. Close Chandler
  3. Start Chandler with ./release/RunChandler --nonexclusive
  4. Start reminder applet with ./release/RunPython ../../osaf-sandbox/reminders/__init__.py
  5. Record memory usage data from top
  6. Close Chandler and reminder applet
  7. Start reminder applet with ./release/RunPython ../../osaf-sandbox/reminders/__init__.py
  8. Start Chandler with ./release/RunChandler --nonexclusive
  9. Record memory usage data from top
  10. Close Chandler and reminder applet
  11. Repeat steps 3-10 as desired

Results

A: First Chandler, then reminder applet
B: First reminder applet, then Chandler

Run # Order Chandler Reminder applet
Virtual Mem Resident Mem Shared Mem Virtual Mem Resident Mem Shared Mem
1 A 249m 67m 27m 204m 46m 20m
B 257m 66m 26m 205m 72m 45m
2 A 249m 90m 50m 204m 46m 20m
B 249m 67m 27m 205m 72m 46m
3 A 249m 91m 51m 204m 46m 20m
B 249m 67m 27m 205m 73m 46m
               
Average A 249m 82.67m 42.67m 204m 46m 20m
B 251.67m 66.67m 26.67m 205m 72.33m 45.67m

Experiment 2: Memory usage during step-through

Without Chandler running:

Initial:

Virtual Mem Resident Mem Shared Mem
5168 3016 1680
from application import schema
20776 7696 3020

from repository.item.Monitors import Monitors
from repository.persistence.RepositoryError import (
    RepositoryVersionError, RepositoryOpenDeniedError, 
    ExclusiveOpenDeniedError)
20776 7696 3020
import wx
45680 18000 8804

import application.Globals as Globals
45680 18000 8804

import application,Utility as Utility
69720 30000 13000

import sys, os
import sched, time, datetime
SCROLL_AREA_WIDTH = 500
Globals.options = Utility.initOptions()
Utility.initI18n(Globals.options)
Utility.initProfileDir(Globals.options)
Globals.chandlerDirectory = Utility.locateChandlerDirectory()
os.chdir(Globals.chandlerDirectory)
Utility.initLogging(Globals.options)
class ReminderDialog(wx.Dialog):
def remind(item, reminder):
class ChandlerReminderScheduler(schema.Item):
class ReminderApp(wx.App):
def main():
if __name__ == "__main__":
    main()
70260 31000 13000

main():

    app = ReminderApp()
ReminderApp.__init__():
    
        ...
        self.OnInit()
ReminderApp.OnInit():
        repoDir = Utility.locateRepositoryDirectory(Globals.options.profileDir)

        try:
            Globals.options.nonexclusive = True
71772 34000 15000

        view = Utility.initRepository(repoDir, Globals.options)
196m 64000 44000

        self.repository = view.repository
196000 64000 44000

        self.scheduler = ChandlerReminderScheduler(itsView= 
                                                   self.repository.view)
205000 73000 46000
        ...
-- TravisVachon - 22 Aug 2006
Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r3 < r2 < r1 | More topic actions
 
Open Source Applications Foundation
Except where otherwise noted, this site and its content are licensed by OSAF under an Creative Commons License, Attribution Only 3.0.
See list of page contributors for attributions.