[prev in list] [next in list] [prev in thread] [next in thread]
List: kwrite-devel
Subject: Review Request 114277: Be gentle to the disc when closing large session
From: "Michal Humpula" <michal.humpula () seznam ! cz>
Date: 2013-12-03 16:35:26
Message-ID: 20131203163526.31741.25741 () vidsolbach ! de
[Download RAW message or body]
[Attachment #2 (multipart/alternative)]
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/114277/
-----------------------------------------------------------
Review request for Kate.
Repository: kate
Description
-------
The KateDocManager::closeAllDocument implementation has quite a silly sideefect. \
Going trough documents one by one, it stores the metainfo one by one. And since the \
metainfo can get quite large and code calls sync() after every document metadata is \
stored, this results in multiple unnecessary disc accesses and data (de)marshaling.
The patch is ugly as hell. There are potentialy more places, where the "multi"-close \
variant could be called instead of closeDocument(). The naming of functions sucks \
terribly (any ideas?).
The other aproach would be to let the user (callsite) of closeDocument() to call \
m_metaInfos->sync() when he finishes the whole transaction. But that breaks \
encapsulation, imho.
This reparsing and disk access is responsible for about half of the time spent in \
closing large session.
Diffs
-----
kate/app/katedocmanager.h df8d0a2
kate/app/katedocmanager.cpp f13876c
Diff: http://git.reviewboard.kde.org/r/114277/diff/
Testing
-------
Thanks,
Michal Humpula
[Attachment #5 (text/html)]
<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 \
solid;"> <tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="http://git.reviewboard.kde.org/r/114277/">http://git.reviewboard.kde.org/r/114277/</a>
</td>
</tr>
</table>
<br />
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" \
style="background-image: \
url('http://git.reviewboard.kde.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); \
background-position: left top; background-repeat: repeat-x; border: 1px black \
solid;"> <tr>
<td>
<div>Review request for Kate.</div>
<div>By Michal Humpula.</div>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt;">Repository: </b>
kate
</div>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" \
style="border: 1px solid #b8b5a0"> <tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;">The KateDocManager::closeAllDocument implementation has quite a silly \
sideefect. Going trough documents one by one, it stores the metainfo one by one. And \
since the metainfo can get quite large and code calls sync() after every document \
metadata is stored, this results in multiple unnecessary disc accesses and data \
(de)marshaling.
The patch is ugly as hell. There are potentialy more places, where the \
"multi"-close variant could be called instead of closeDocument(). The \
naming of functions sucks terribly (any ideas?).
The other aproach would be to let the user (callsite) of closeDocument() to call \
m_metaInfos->sync() when he finishes the whole transaction. But that breaks \
encapsulation, imho.
This reparsing and disk access is responsible for about half of the time spent in \
closing large session.</pre> </td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>kate/app/katedocmanager.h <span style="color: grey">(df8d0a2)</span></li>
<li>kate/app/katedocmanager.cpp <span style="color: grey">(f13876c)</span></li>
</ul>
<p><a href="http://git.reviewboard.kde.org/r/114277/diff/" style="margin-left: \
3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>
_______________________________________________
KWrite-Devel mailing list
KWrite-Devel@kde.org
https://mail.kde.org/mailman/listinfo/kwrite-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic