D15426: Avoid QByteArray::remove in AccessManagerReply::readData
Fabian Vogt
noreply at phabricator.kde.org
Wed Sep 12 14:42:35 BST 2018
fvogt added a comment.
In D15426#324636 <https://phabricator.kde.org/D15426#324636>, @bruns wrote:
> In D15426#324486 <https://phabricator.kde.org/D15426#324486>, @fvogt wrote:
>
> > In D15426#324284 <https://phabricator.kde.org/D15426#324284>, @bruns wrote:
> >
> > > For the trivial case, do the clear in `readData()`.
> > >
> > > For the non-trivial case:
> > >
> > > 1. in `readData()`, no memmoves were ever done. Currently, if you have e.g. 50 kB in m_data, you read 2 * 16 kB, and move the remaining 18 kB to the front. You can instead just read 3 * 16 + 2 kB.
> >
> >
> > It's always a cpu/memory trade off. I prefer KISS to premature optimization.
>
>
> if you remove the `|| m_offset * 2 >= m_data.length()`, it gets even simpler, and does less work (especially for the readAll() case). The garbage collection is already done in slotData.
I did not remove that because it means even if there's only a single byte in the buffer remaining (for some reason), the memory of `m_data` is never freed.
However, I looked at the QByteArray source code and found that `:remove` doesn't actually change the capacity of the array at all, so it's indeed a bit pointless.
REPOSITORY
R241 KIO
REVISION DETAIL
https://phabricator.kde.org/D15426
To: fvogt, #frameworks, elvisangelaccio
Cc: ngraham, bruns, kde-frameworks-devel, michaelh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20180912/fe286995/attachment.html>
More information about the Kde-frameworks-devel
mailing list