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.
/Peter
_______________________________________________
calendarserver-dev mailing list
calendarserver-dev@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/calendarserver-dev