[Konsole-devel] Review Request: patch to reduce memory usage for fixed-size history in konsole

Robert Knight robertknight at gmail.com
Tue Jun 9 22:36:36 UTC 2009


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/802/#review1289
-----------------------------------------------------------

Ship it!


Looks good to me - I'll test it here a little more and merge it in the next couple of days.

- Robert


On 2009-06-09 14:39:45, mick22 wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviewboard.kde.org/r/802/
> -----------------------------------------------------------
> 
> (Updated 2009-06-09 14:39:45)
> 
> 
> Review request for Konsole.
> 
> 
> Summary
> -------
> 
> Here's a patch that drastically reduces mem usage when a fixed size history is
> used:
> - new history storage type "HistoryTypeQList"  (QList-based) set as replacement for HistoryTypeBuffer
> - compact storage for history lines
> 
> History lines are stored as an array of chars when possible (i.e. when
> color and rendition flag of all characters in the line are equal). 2 bytes per character + overhead
> 
> When not (easily) possible, it falls back to the current way of storing history lines (array of QVector<Character>). 11 bytes per character + overhead
> 
> Memory usage has been cut down from about 171MB to 55MB for a konsole process
> with 5 tabs, 30000 lines scrollback, 65 chars per line.
> 
> Update:
> As suggested in https://bugs.kde.org/show_bug.cgi?id=176974#c20, a formatting array has been introduced in v2 of the patch. The CompactHistoryLine class can now handle single- and multi-color history lines. This replaces v1 of the patch where 2 separate classes were used.
> 
> 
> This addresses bug 176974.
>     https://bugs.kde.org/show_bug.cgi?id=176974
> 
> 
> Diffs
> -----
> 
>   /trunk/KDE/kdebase/apps/konsole/src/Character.h 979244 
>   /trunk/KDE/kdebase/apps/konsole/src/History.h 979244 
>   /trunk/KDE/kdebase/apps/konsole/src/History.cpp 979244 
>   /trunk/KDE/kdebase/apps/konsole/src/SessionController.cpp 979244 
>   /trunk/KDE/kdebase/apps/konsole/src/SessionManager.cpp 979244 
> 
> Diff: http://reviewboard.kde.org/r/802/diff
> 
> 
> Testing
> -------
> 
> reasonably tested 
> 
> 
> Thanks,
> 
> mick22
> 
>




More information about the konsole-devel mailing list