r2 - 28 Feb 2007 - 11:35:18 - HeikkiToivonenYou are here: OSAF >  Journal Web  >  ContributorNotes > HeikkiToivonenNotes > PerfDataComparisons20070227

Perf Data Comparisons

We run Chandler performance tests using artificial test data sets. The main data is a 3000 event ical file we load for the so called "large data" sets. For scrolling test we also load two small ical files (under 10 items total) and for sharing test we use an ical file which has about 10 items. For some time there has been questions about how accurately this test data set matches real world performance with real world data sets.

I finally did a comparison using Katie real world data on Linux. Katie subscribes to the office calendar, and has a home, work and book club calendar. When restoring the settings Chandler asks if timezones should be turned on - I answered yes.

I also compared with Ted's data. Ted had work and office calendar, and I also turned on timezones during restore.

When we run the traditional large data tests the repository starts with 8840 items in the repository. Katie's repository contains 5377 items (at the time I run this test). Ted's repository contains 6286 items.

Below is the comparisons of the results. Some notes: sharing test was disabled with katie's and ted's data to prevent data corruption; table scrolling test failed with katie's and ted's data (not enough items); switch to all view, jump week, overlay and switch calendar measured only the 2nd time of the action.

The cases which give the most concern are those that show negative difference of more than 10%. This means the real world case is significantly slower than what one would expect from our test results.

There are some caveats: the test results could change significantly based on what collections we are using for the tests, as well as how much data is visible on the week that tests are performed. The tests jump to a fixed date to get consistent results, but in the real world your performance will vary.

testÂ

3k 1st

3k 2nd

katie 1st

katie 2nd

ted 1st

ted 2nd

katie diff 1st

katie diff 2nd

ted diff 1st

ted diff 2nd

PerfImportCalendar.pyÂ

60.6Â

60.43Â

PerfStampEvent.pyÂ

0.31Â

0.32Â

PerfNewEventCalView.pyÂ

0.34Â

0.28Â

PerfNewCalendar.pyÂ

0.17Â

0.17Â

PerfSwitchToAllView.pyÂ

0.25Â

0.25Â

PerfNewEventFileMenu.pyÂ

0.31Â

0.32Â

PerfLargeDataResize.pyÂ

3.23Â

2.91Â

1.65Â

1.71Â

1.62Â

1.7Â

1.58Â

48.94%Â

1.2Â

41.15%Â

1.62Â

50.00%Â

1.21Â

41.74%Â

PerfLargeDataSwitchCalendar.pyÂ

0.47Â

0.47Â

0.55Â

0.55Â

0.37Â

0.32Â

-0.08Â

-17.63%Â

-0.08Â

-17.18%Â

0.1Â

21.72%Â

0.15Â

32.68%Â

PerfLargeDataNewEventCalView.pyÂ

0.59Â

0.65Â

0.66Â

0.65Â

0.35Â

0.4Â

-0.07Â

-11.39%Â

-0.14%Â

0.24Â

40.25%Â

0.25Â

38.68%Â

PerfLargeDataScrollCalendar.pyÂ

0.64Â

0.62Â

0.34Â

0.34Â

0.33Â

0.33Â

0.3Â

47.53%Â

0.28Â

44.83%Â

0.31Â

48.75%Â

0.29Â

47.18%Â

PerfLargeDataSwitchToAllView.pyÂ

0.66Â

0.66Â

1.4Â

1.36Â

0.8Â

0.81Â

-0.74Â

-113.00%Â

-0.7Â

-107.04%Â

-0.14Â

-21.10%Â

-0.15Â

-23.25%Â

PerfLargeDataSharing.pyÂ

2.89Â

2.85Â

PerfLargeDataJumpWeek.pyÂ

0.21Â

0.22Â

0.22Â

0.21Â

0.18Â

0.18Â

-0.01Â

-2.62%Â

0.01Â

6.05%Â

0.03Â

13.67%Â

0.04Â

17.26%Â

PerfLargeDataScrollTable.pyÂ

0.31Â

0.29Â

PerfLargeDataNewCalendar.pyÂ

0.72Â

0.74Â

0.96Â

0.89Â

0.61Â

0.53Â

-0.24Â

-33.07%Â

-0.15Â

-21.00%Â

0.11Â

15.89%Â

0.2Â

27.61%Â

PerfLargeDataOverlayCalendar.pyÂ

0.34Â

0.34Â

0.28Â

0.27Â

0.29Â

0.29Â

0.06Â

17.70%Â

0.06Â

18.65%Â

0.05Â

14.26%Â

0.05Â

14.01%Â

PerfLargeDataNewEventFileMenu.pyÂ

0.55Â

0.49Â

0.75Â

0.76Â

0.46Â

0.26Â

-0.2Â

-35.36%Â

-0.26Â

-53.61%Â

0.1Â

17.23%Â

0.24Â

48.07%Â

PerfLargeDataStampEvent.pyÂ

0.66Â

0.52Â

0.85Â

0.84Â

0.52Â

0.51Â

-0.19Â

-28.14%Â

-0.32Â

-62.65%Â

0.14Â

21.47%Â

0.01Â

2.43%Â

Timing emptyÂ

4.05Â

4.08Â

Timing large startupÂ

4.52Â

4.46Â

4.86Â

4.85Â

5.43Â

5.56Â

-0.34Â

-7.52%Â

-0.39Â

-8.74%Â

-0.91Â

-20.13%Â

-1.1Â

-24.66%Â

How to run the tests yourself

  • svn up -r 13291
    • You could try some other revision as well, but this is what I tested
  • make distclean install purge
  • Shut down all processes you can. You should have just a terminal window open.
  • ./tools/do_tests.sh -p
    • We are interested in the top section of the output only, i.e. something like:
PerfImport.py [ 60.0s ]
...
Timing startup with large repository 4.62 4.85 4.76 [4.76s]
Showing performance log in 5 seconds, Ctrl+C to stop tests
    • You can hit Ctrl+c at that point. Run the test again. You now have your baseline numbers.
  • patch -p4 < katie.diff
  • Now you need to edit tools/do_tests.sh: find "katie_profile" and change it to something like "yourname_profile".
  • Then you need to edit tools/QATestScripts/Performance/PerfLargeData*.py files: change "Home" and "Office_Calendar" to some collection names in your sidebar - the tests assume that "Office_Calendar" has many events (I will later refer to "Home" but use the name of your collection).
  • Make sure PerfLargeDataSharing?.py does not exist - if it does, delete it.
  • ./chandler --profileDir="yourname_profile"
  • Test > Restore settings...
  • Select the "Home" collection in the sidebar
  • File > Save Changes
  • File > Backup... into "yourname_profile" directory, quit Chandler
  • ./tools/do_tests.sh -p
    • Like above, you can hit Ctrl+c at the point. Run the test again. You now have your comparison numbers (some irrelevant tests were now omitted compared to the unedited do_tests.sh).
  • ./release/RunPython tools/headless.py --restore="yourname_profile/__repository__.001" --profileDir="yourname_profile"
  • view.check()
  • len(view)
    • this tells you how many items are in youe repository
  • Send email to heikki with your results. Include your platform, svn revision number, both baseline numbers, both results numbers, mention how many collections you have in the sidebar, how many items in your repo, and whether or not you have timezones enabled.

-- HeikkiToivonen - 27 Feb 2007

toggleopenShow attachmentstogglecloseHide attachments
Topic attachments
I Attachment Action Size Date Who Comment
elsediff x.diff manage 3.8 K 27 Feb 2007 - 15:36 HeikkiToivonen diff to r13291
Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: 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.