GNOME Bugzilla – Bug 771904
Don't load all contacts into memory at startup
Last modified: 2019-03-17 04:50:26 UTC
When Geary starts, each Engine instance loads all contacts from the DB and puts them in an instance of Geary.ContactStore. Then, when constructing a new composer instance, these get copied into an instance of ContactListStore and used for email address completion. Since contacts are GObjects, for accounts with many contacts (I have 65k in one), this constitues something of a CPU and memory overhead. Both Geary.ContactStore and ContactListStore could load contacts on-demand from the database instead, reducing both overheads, or some other approahc could be taken, like just removing Geary.ContactStore. However, Bug 713232 seems to imply the way contacts currently work was a conscious choice, so some care should be taken before committing this. Fixing Bug 771903 may also reduce the importance of this a bit as well.
Closing in favour of: https://gitlab.gnome.org/GNOME/geary/issues/318