Large calendars with many recurring items slow down the app
Categories
(Calendar :: Provider: Local Storage, defect)
Tracking
(Not tracked)
People
(Reporter: mingodad, Unassigned)
References
(Depends on 1 open bug)
Details
(Keywords: perf)
Comment 1•18 years ago
|
||
Comment 3•18 years ago
|
||
Updated•17 years ago
|
Comment 4•17 years ago
|
||
Comment 5•17 years ago
|
||
Comment 6•17 years ago
|
||
Comment 7•17 years ago
|
||
Updated•17 years ago
|
Comment 8•17 years ago
|
||
Comment 9•17 years ago
|
||
Updated•16 years ago
|
Comment 11•16 years ago
|
||
Comment 12•16 years ago
|
||
Updated•15 years ago
|
Comment 13•15 years ago
|
||
Comment 14•15 years ago
|
||
Comment 15•13 years ago
|
||
Comment 16•13 years ago
|
||
Updated•11 years ago
|
Comment 17•5 years ago
|
||
Geoff,
Only comment 0 is relevant in this bug - is this covered in another bug report?
(In reply to Domingo Alvarez from comment #0)
...
Whe populates with several recurrent events like using the
http://ical.mac.com/rainbowfly/FLY-RADIO32SCHEDULE.ics it becomes unusable,
too slow, I did some research and found that in the function getItems from
local storage if we insert a this.mDB.beginTransaction() at the begining and
a this.mDB.commitTransaction() at the end we can reduce the time spent to
half but it is still to slow, when moving fron one day to another it seeks
and proccess 200 recurrent records to show only 6 events in the calendar and
other six in the top list filtered by today events.It seems that the actual algorithm is not apropriate because it get worst
when the number of recurrencies grow.For comparison only I downloaded Personal calendar from
www.calendarscope.com the shareware download and importesd the same calendar
from Fly Radio and it's performance is astonishing, if we can solve this
problem the claendar will be usable, because right know it's only a proof of
concept, a good one but not usable.Reproducible: Always
Steps to Reproduce:
1.import a calendar from
http://ical.mac.com/rainbowfly/FLY-RADIO32SCHEDULE.ics
2.try to use it and navigate through it
3.comment a line on calStorageCalendar.js and see the difference, there is
the slowdown
for each (var evitem in resultItems) {
/////// count += handleResultItem(evitem.item, evitem.flags, Ci.calIEvent);
if (checkCount())
return;
}
Part of this code was added in bug 366177 ?
Comment 18•5 years ago
|
||
Well, obviously, if you completely ignore recurring items and don't display them anywhere the program is going to get faster. That's what commenting the line mentioned does.
However, in my experience there is a lot of unnecessary calculation done, because any recurring event that no longer happens is still being calculated fully. I'm currently considering a number of options on this front.
Description
•