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 2 open bugs)
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•16 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.
Comment 21•10 months ago
|
||
(In reply to Geoff Lankow (:darktrojan) from comment #18)
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.
Is there anything left here after the many fixes of the past 4 years https://mzl.la/3So40M6 (most of them yours)?
Or perhaps covered in another open bug report https://mzl.la/4b7Mjrq.
Updated•3 months ago
|
Comment 22•13 days ago
|
||
Yes we do still have performance problems, hoping for a solution.
Setup:
We are using Thunderbird (usually auto-updating to be on current official release) in a workgroup of ca. 15 people, each person has a calendar shared for all others, and all calendars are configured in each person's Thunderbird. So they all have ca. 15-20 calendars in their Thunderbird visible. (I use a script to roll that out automatically when a new person joins the group.) The caldav DB is on a local Synology NAS with SSD read cache, so I suppose the caldav server is reasonably fast (or at least not unusually slow). I actually have added the SSD cache solely in order to try to alleviate the Thunderbird calendar performance problems, but it did has made a noticeable difference.
On average, there are probably about 1-2 calendar entries per day, in each calendar. We have this scenario for a few years, and the performance issues have gotten worse over time (with growing number of people and growing number of calendar entries (over a few years)).
The calendars are configured with cache mode disabled (this was the default and I had read that lightning cache was still in beta at the time I have set it up, and I did not dare to enable the cache because reliability of the calendar data is essential here).
What we see is very frustrating at daily work:
Listed in descending order of annoyance:
- Typing text in emails occasionally freezes for about 1-2 seconds!!
- Scrolling through emails occasionally freezes for 1-2 seconds.
- When we start TB, it takes about 10 seconds for the calendar view (week view) to fully populate. We can literally watch how it loads the first one or two calendars, then refreshes the whole view, then loads the next one or two, again refreshes the whole view, then the next 1-3 calendars, then again refreshes. So my gut feeling is that the number of calendars and entries scales with a higher order of these numbers.
When we remove all calendars from Thunderbird, these problems are gone.
My impression is that the background process that populates/updates the calendar view is partly blocking the email UI.
Description
•