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

Reply via email to