[PATCH] KIO::SlaveBase and the event loop

Roland Harnau truthandprogress at googlemail.com
Wed Jul 16 14:00:53 BST 2008


2008/7/16, Ingo Klöcker <kloecker at kde.org>:
> On Tuesday 15 July 2008, Roland Harnau wrote:

>> Apropos ambitious plans: In the planning phase for KDE4 did you
>> consider to re-implement the IO slaves as threads? The process
>> creation cost including the D-Bus talk to klauncher seem quite high
>> to me, especially if Konqueror launches 20 or more  of them.
>
> Do you have actual numbers proving that this is a problem?

That's easy. Take a look at  the following code snippet:

class Runner : public QObject {
    Q_OBJECT
public slots:
    void run() {
        QTime time;
        time.start();
        for (int i = 0; i < 20; ++i) {
            int error;
            QString errorString;
            KIO::Slave::createSlave("http",
KUrl("http://www.kde.org"), error, errorString);
        }
        std::cout << "Elapsed time (msec): " << time.elapsed() << std::endl;
        KApplication::exit();
    }
};

The (reproducible) output for a call to Runner::run is
Elapsed time (msec): 2605

The code is compiled with CMAKE_BUILD_TYPE=Release and runs on my high
speed eeePC.

> I suggest to read D. J. Bernstein's very interesting paper "Some
> thoughts on security after ten years of qmail 1.0" ([1]), in
> particular, section 2.6.
>
> [1] http://cr.yp.to/qmail/qmailsec-20071101.pdf

Pretty irrelevant. Knuth's remark regarding "premature optimization"
gets really overused.


Roland


More information about the kde-core-devel mailing list