[CalendarServer-dev] Does timezones have to be so slow?
apm at one.com
Thu Apr 22 07:09:59 PDT 2010
Cyrus Daboo wrote:
> Can you send the full request body for the calendar-query REPORTs that
> you are using so I can take a look at this?
Sorry for forgetting to CC the list.
To sum up:
REPORT(calendar-query) requests with an empty <calendar-data/> element
will read events directly from disk an be relatively fast.
If <calendar-data/> is non-empty, there will be instantiated
python-vobject objects to handle the returned data. This will result in
a VTIMEZONE (TimezoneComponent) object being created for each event and
even though the tzinfo is cached, creating theses objects is pretty costly.
The constructor for vobject/icalendar.py TimezoneComponent will call
settzinfo(),getTransition(), and the localy defined test() which in turn
calls tzinfo.dst() - where most of the request time is spent.
This should be possible to optimize since the resulting VTIMEZONEs are
often the exact same for all VEVENTs.
Sending an empty caldendar-data in the request is much faster though.
Thanx to Cyrus.
More information about the calendarserver-dev