[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-optimize
Subject:    Re: QCString construction
From:       David Faure <faure () kde ! org>
Date:       2007-02-10 22:59:48
Message-ID: 200702102359.49205.faure () kde ! org
[Download RAW message or body]

On Saturday 10 February 2007, Roger Larsson wrote:
> On Saturday 10 February 2007 01:43, David Faure wrote:
> > I was debugging today the memory consumption by kmail (qt3) when sending
> > signed emails with large attachments. Among other things, I noticed many
> > QCString(const char*) constructions in kmail, like: QCString
> > KMMessage::asString() const {
> >    return asDwString().c_str();
> > }
> > and
> > messagecomposer.cpp: mEncodedBody = dwPart->AsString().c_str();
> 
> The fastest string copy is not doing it at all...
I know that. And I'm considering making more use of DwString in the affected kmail code,
to avoid going via QCString.

> Why is code like this necessary? 
Because of the use of mimelib in kmail.

> Why returning a low level c_str? 
That's what I fixed.

> If it is why does it have to be in a hot path?
What do you want me to say? kmail mixes two string classes because of the use of mimelib.

> I have been guilty of optimizing code that is rarely used resulting in
Rarely used?? I'm only looking at the places where I found kmail to spend a lot
of time while sending large emails. I know all about the dangers of premature
or misguided optimization, this is really about making the bottlenecks faster, not just
any string copying I found.

-- 
David Faure, faure@kde.org, sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).
_______________________________________________
Kde-optimize mailing list
Kde-optimize@kde.org
https://mail.kde.org/mailman/listinfo/kde-optimize
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic