ikhal is really slow
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 3.1k
- Forks
- 233
- Avg merge
- 1h 44m
- Merged PRs (30d)
- 1
Description
Generally speaking, the concept behind khal is awesome. I got it to work fine with my google calendar. That calendar has only few items, and ikhal's navigation is seamless.
However, I am also trying to use this for my office calendar at work, where I have tons of meeting events (total ~300 ics files, totaling ~5MB in vdir). In this setup, the same ikhal installation is very slow (~5 seconds) both to startup and to navigate in the calendar view (hangs a lot).
I am using a MacOSX (Darwin Kernel Version 16.7.0), Python 3.7.0, khal 0.9.9 based on pip3 install (global installation without virtualenv).
I tried the simple non-pkg_resources variant
#!/usr/bin/env python3
from khal.cli import main_khal
main_khal()
but that did not change anything noticeable.
I profiled khal with the default invocation and got khal.profile.tar.gz based on python3 cProfile which I cannot fully understand since I don't know all the function names. But it seems like a lot of time is being spent in parser.py. Pardon me if I am mistaken.
Could you please help me out.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The report points to parser.py and includes khal.profile.tar.gz; begin by examining the cProfile data and reproducing the delay with the stated ~300 ICS files. Done means identifying and addressing the startup and calendar-navigation slowdown, then measuring those paths again.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- macos, python
- Domain
- cli, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100