Review Request 123341: Optimize reading Sonnet settings by minimizing the cals to save()

Kåre Särs kare.sars at iki.fi
Sat May 23 15:20:04 UTC 2015


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/123341/
-----------------------------------------------------------

(Updated May 23, 2015, 3:20 p.m.)


Status
------

This change has been marked as submitted.


Review request for KDE Frameworks, Laurent Montel and Martin Tobias Holmedahl Sandsmark.


Changes
-------

Submitted with commit 28f74f1d4c6c0331df957463381d2f2b8936a801 by Kåre Särs to branch master.


Repository: sonnet


Description
-------

The curent implementation can causes ~25 cals to Settings::save() for every created Speller instance. 

The Settings::restore() function ends with setQuietIgnoreList(...) which would call save() for evey ignore-word.

This patch removes the save() cals in the setFoo() functions of Settings and replace it by a boolean that indicates if the settign is changed or not. Then in the Speller class save() is called when needed.

The reason for this patch is that it took Kate ~2 minutes to open a kate session with ~340 files. The implementation in Kate called reload() for every file. There is a RR for Kate to remove that unneeded reload.

This patch also prepares Sonnet::Settings for being used in the public API to set aplication specific Sonnet settings without saving them in the global settings.

The Settings class is exported but the header is private. This change is BIC, but since the class is private, my interpretation is that it should not mater.

If accepted I will also add a Review Request to make the Settings class public to enable application specific settings.


Diffs
-----

  autotests/CMakeLists.txt 8ade413 
  autotests/test_settings.h PRE-CREATION 
  autotests/test_settings.cpp PRE-CREATION 
  src/core/settings.cpp b5c4198 
  src/core/settings_p.h 0d48889 
  src/core/speller.cpp 3903b42 
  src/ui/configwidget.cpp 02f2a26 

Diff: https://git.reviewboard.kde.org/r/123341/diff/


Testing
-------

Tested with Kate and with the patch the startup time was back to "normal". 
Two unit tests added.


Thanks,

Kåre Särs

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20150523/015f15dd/attachment.html>


More information about the Kde-frameworks-devel mailing list