[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-devel
Subject: Konqueror startup timed (Was: Re: RFC: Startup speed of Konqueror cvs HEAD - benchmark)
From: Roger Larsson <roger.larsson () norran ! net>
Date: 2002-12-06 15:47:23
[Download RAW message or body]
On Friday 06 December 2002 15:03, Stephan Kulow wrote:
> Am Freitag, 6. Dezember 2002 02:51 schrieb Roger Larsson:
> > Hi KDE developers, (and Bcc: Linux Mem. Man. FYI)
> >
> > People often complains about startup speed for Konqueror, especially when
> > the intended use is to manage files on the local disk. I have looked into
> > that, and one thing that I have done is to compare several programs for
> > file managing (really only starting and exiting). Note that the
> > filemanagers do have very different feature set. I did also run this test
> > with 2.5.50 (bottom of mail).
> >
> >
> > /usr/bin/time FILEMANAGER ~
> >
> > The results look like this (SuSE 2.4.18 kernel):
> >
> How did you time that taking that konqueror doesn't exit when it's finished
> displaying the directory? If you canceled it manually, you shouldn't report
it
> with two digits after the comma :)
I canceled it manually. (But I did run several times to get a feel for what
should be the actual value) User and system time does not change much...
But their second digit is interesting - so the reason is formating I guess...
But now I have found a better way :-)
With the addition of some kdDebug in konq_main (see patch below).
Then running konqueror with
strace -tt konqueror 2> run.txt
and filtering the output with
grep "write(2" run.txt | head -142 | more
You can find some really interesting things...
CACHED NOT CACHED
time until app.exec() 1.9 s 10.9 s
parts
to got into main() 0.4 s 3.0 s
the line "KonquerorApplication app;" 0.4 s 4.0 s
kio stuff 0.9 s 1.3 s
If we could delay some work (really wait time) in the uncached case to
after app.exec() is called - it would be perceived as (and in reality be)
much faster...
/RogerL
Index: konq_main.cc
===================================================================
RCS file: /home/kde/kdebase/konqueror/konq_main.cc,v
retrieving revision 1.114
diff -u -3 -p -r1.114 konq_main.cc
--- konq_main.cc 18 Jun 2002 21:03:22 -0000 1.114
+++ konq_main.cc 6 Dec 2002 14:57:59 -0000
@@ -45,26 +45,34 @@ static KCmdLineOptions options[] =
int main( int argc, char **argv )
{
+ kdDebug(1202) << "main()" << endl;
+
KCmdLineArgs::init( argc, argv, KonqFactory::aboutData() );
KCmdLineArgs::addCmdLineOptions( options ); // Add our own options.
+ kdDebug(1202) << "app" << endl;
KonquerorApplication app;
+ kdDebug(1202) << "dcop register" << endl;
app.dcopClient()->registerAs( "konqueror" );
app.dcopClient()->setDefaultObject( (new KonquerorIface())->objId() );
+ kdDebug(1202) << "libkonq + registerFormats" << endl;
KGlobal::locale()->insertCatalogue("libkonq"); // needed for apps using
libkonq
KImageIO::registerFormats();
+ kdDebug(1202) << "parsedArgs" << endl;
KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
+ kdDebug(1202) << "konqueror-crash" << endl;
KTempFile crashlog_file(locateLocal("tmp", "konqueror-crash-"), ".log");
KonqMainWindow::s_crashlog_file = new QFile( crashlog_file.name() );
KonqMainWindow::s_crashlog_file->open( IO_WriteOnly );
+ kdDebug(1202) << "args" << endl;
if ( kapp->isRestored() )
{
int n = 1;
@@ -127,6 +135,7 @@ int main( int argc, char **argv )
}
args->clear();
+ kdDebug(1202) << "app.exec();" << endl;
app.exec();
//// Temporary code, waiting for Qt to do this properly
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic