-
-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bug: rrule is very slow #42
Comments
I have many old/ended recurring items. |
Hi, could you provide the ICS file and the script so people trying this talk about the same results as you do? |
Hi, sorry I only have my private calendar. Can we prefilter with ;UNTIL= parameter before we pass anything over to rrule? |
Reading the question, it seems that using the
Currently, we use the iteration, see
Maybe using |
rrule only:
|
How would prefiltering work? |
Also, with using |
eg UNTIL part already parsed in the code: if UNTIL >= datetime.now(): |
I think, there are some optimizations which can be taken:
Also, having a test event would be great. Is it possible that you identify the event which takes so long and post it here with the code which takes long? This way, we can really optimize - at the moment, I am still not sure how to properly address it. |
Please find test case attached, querying 28days takes 31sec
|
no speed improvement references #42 (comment)
Speed up rrule contributes to #42
Isnt that issue solved now? |
rrule is very slow, for a 1.7MB ical evaluating 7days of events with with ~80 recurring events in calendar
I get the following profiling with i5 CPU:
ncalls tottime percall cumtime percall filename:lineno(function)
635 5.837 0.009 5.837 0.009 {method 'read' of '_ssl._SSLSocket' objects} // google calendar download 5.8sec
966170/963055 5.584 0.000 10.756 0.000 rrule.py:774(_iter) // RRULE eval 5.6s
925050 2.324 0.000 2.453 0.000 rrule.py:1276(ddayset)) // RRULE eval 2.3s
35101 1.395 0.000 14.259 0.000 rrule.py:1381(_iter)/ RRULE eval 1.4s
1965581/1033825 0.844 0.000 12.126 0.000 {built-in method builtins.next}
933067 0.798 0.000 0.798 0.000 {built-in method combine}
71890 0.771 0.000 2.094 0.000 parser.py:321(parts)
933058 0.619 0.000 0.619 0.000 {built-in method fromordinal}
The text was updated successfully, but these errors were encountered: