Lazy initialize library paths
For a lot of command line tools, library loading is not required, so don't waste a lot of time computing them. According to callgrind, this makes the QCoreApplication constructor factor 6 faster, and also removes a lot of stat() calls and other file system access. Change-Id: I0211f5303712fa0dcfc4168cce7025283c63c9d1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
39df773eb5
commit
8fb040b6c0
@ -403,8 +403,9 @@ void QCoreApplicationPrivate::appendApplicationPathToLibraryPaths()
|
|||||||
{
|
{
|
||||||
#ifndef QT_NO_LIBRARY
|
#ifndef QT_NO_LIBRARY
|
||||||
QStringList *app_libpaths = coreappdata()->app_libpaths;
|
QStringList *app_libpaths = coreappdata()->app_libpaths;
|
||||||
Q_ASSERT(app_libpaths);
|
if (!app_libpaths)
|
||||||
QString app_location( QCoreApplication::applicationFilePath() );
|
coreappdata()->app_libpaths = app_libpaths = new QStringList;
|
||||||
|
QString app_location = QCoreApplication::applicationFilePath();
|
||||||
app_location.truncate(app_location.lastIndexOf(QLatin1Char('/')));
|
app_location.truncate(app_location.lastIndexOf(QLatin1Char('/')));
|
||||||
app_location = QDir(app_location).canonicalPath();
|
app_location = QDir(app_location).canonicalPath();
|
||||||
if (QFile::exists(app_location) && !app_libpaths->contains(app_location))
|
if (QFile::exists(app_location) && !app_libpaths->contains(app_location))
|
||||||
@ -589,12 +590,8 @@ void QCoreApplication::init()
|
|||||||
d->threadData->eventDispatcher = QCoreApplicationPrivate::eventDispatcher;
|
d->threadData->eventDispatcher = QCoreApplicationPrivate::eventDispatcher;
|
||||||
|
|
||||||
#ifndef QT_NO_LIBRARY
|
#ifndef QT_NO_LIBRARY
|
||||||
if (!coreappdata()->app_libpaths) {
|
if (coreappdata()->app_libpaths)
|
||||||
// make sure that library paths is initialized
|
|
||||||
libraryPaths();
|
|
||||||
} else {
|
|
||||||
d->appendApplicationPathToLibraryPaths();
|
d->appendApplicationPathToLibraryPaths();
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef QT_EVAL
|
#ifdef QT_EVAL
|
||||||
|
Loading…
x
Reference in New Issue
Block a user