View Issue Details

IDProjectCategoryView StatusLast Update
0015710ScribusGeneralpublic2019-06-13 11:14
Reporterwilliam Assigned Tojghali  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionduplicate 
Platformx86_64OSFedora LinuxOS Version30
Product Version1.5.4.svn 
Target VersionFixed in Version 
Summary0015710: scribus is slow opening
Descriptionstarting Scribus 1.5.5.svn from 12 June 2019 with no document, canceling the new document window, and then closing Scribus takes about 15 seconds on a 2.5GHz 4 core Intel i5-2450M laptop.
I rebuilt scribus with profiling and attached a profile of opening scribus with no document and then closing.
Here are the top items. It looks like something is making a long list inefficiently.
  % cumulative self self total
 time seconds seconds calls ms/call ms/call name
 16.67 0.03 0.03 2427252 0.00 0.00 QList<QString>::iterator::operator*() const
 16.67 0.06 0.03 864415 0.00 0.00 std::__atomic_base<int>::operator--()
  5.56 0.07 0.01 663961 0.00 0.00 QList<QString>::iterator::operator<(QList<QString>::iterator const&) const
  5.56 0.08 0.01 584944 0.00 0.00 QListData::size() const
  5.56 0.09 0.01 574334 0.00 0.00 QString::QString(QString const&)
  5.56 0.10 0.01 572238 0.00 0.00 bool QAtomicOps<int>::ref<int>(std::atomic<int>&)
  5.56 0.11 0.01 572238 0.00 0.00 std::__atomic_base<int>::operator++()
  5.56 0.12 0.01 277527 0.00 0.00 QList<FileFormat>::Node::t()
  5.56 0.13 0.01 152762 0.00 0.00 QHash<QString, QHashDummyValue>::insert(QString const&, QHashDummyValue const&)
  5.56 0.14 0.01 152762 0.00 0.00 QHash<QString, QHashDummyValue>::findNode(QString const&, unsigned int) const
  5.56 0.15 0.01 148851 0.00 0.00 QSet<QString>::const_iterator::operator!=(QSet<QString>::const_iterator const&) const
  5.56 0.16 0.01 2996 0.00 0.00 QList<VColorStop*>::detach()
  5.56 0.17 0.01 1354 0.01 0.01 QMapNode<QString, QPointer<ScrAction> >::nextNode()
  5.56 0.18 0.01 95 0.11 0.11 qstrnlen(char const*, unsigned int)

Here are some of the top call graph entries. It looks like something with sorting a QStringList in plugins or icons.

index % time self children called name
                                                 <spontaneous>
[1] 61.2 0.00 0.11 ImIconProvider::icon(QFileInfo const&) const [1]
                0.00 0.11 1957/1957 LoadSavePlugin::getExtensionsForImport(int) [2]
                0.00 0.00 1957/37359 QStringList::~QStringList() [58]
                0.00 0.00 9521/843820 QString::~QString() [21]
                0.00 0.00 4651/40222 QString::QString(char const*) [2290]
                0.00 0.00 2435/3229 QString::toLower() && [2400]
                0.00 0.00 2194/5377 QStringList::contains(QString const&, Qt::CaseSensitivity) const [2357]
                0.00 0.00 1957/6889 QString::isEmpty() const [2346]
                0.00 0.00 478/37606 QString::operator=(QString&&) [2292]
-----------------------------------------------
                0.00 0.11 1957/1957 ImIconProvider::icon(QFileInfo const&) const [1]
[2] 60.8 0.00 0.11 1957 LoadSavePlugin::getExtensionsForImport(int) [2]
                0.00 0.04 1957/1959 void qSort<QStringList>(QStringList&) [8]
                0.00 0.03 1957/1959 QList<QString>::toSet() const [11]
                0.00 0.02 1957/1960 QSet<QString>::toList() const [27]
                0.00 0.01 264195/264705 QList<FileFormat>::const_iterator::operator->() const [47]
                0.00 0.01 66538/66600 QList<QString>::append(QList<QString> const&) [52]
                0.00 0.00 1957/1960 QStringList::operator=(QList<QString>&&) [167]
                0.00 0.00 1957/76150 QList<QString>::~QList() [28]
                0.00 0.00 1957/1971 LoadSavePlugin::findFormat(unsigned int, LoadSavePlugin*, QList<FileFormat>::iterator) [169]
                0.00 0.00 1957/1962 QSet<QString>::~QSet() [321]
                0.00 0.00 68495/68604 QList<FileFormat>::const_iterator::operator!=(QList<FileFormat>::const_iterator const&) const [2285]
                0.00 0.00 66538/66644 QList<FileFormat>::const_iterator::operator++() [2287]
                0.00 0.00 1957/2110 QList<FileFormat>::begin() [2442]
                0.00 0.00 1957/1959 QList<FileFormat>::const_iterator::const_iterator(QList<FileFormat>::iterator const&) [2465]
                0.00 0.00 1957/1960 QList<FileFormat>::constEnd() const [2464]
                0.00 0.00 1957/4455 QStringList::QStringList() [2366]
-----------------------------------------------
                0.00 0.00 2/1959 LoadSavePlugin::getExtensionsForPreview(int) [253]
                0.00 0.04 1957/1959 LoadSavePlugin::getExtensionsForImport(int) [2]
[8] 22.0 0.00 0.04 1959 void qSort<QStringList>(QStringList&) [8]
                0.00 0.04 1959/1959 void QAlgorithmsPrivate::qSortHelper<QList<QString>::iterator, QString>(QList<QString>::iterator, QList<QString>::iterator, QSt
                0.00 0.00 1959/2427252 QList<QString>::iterator::operator*() const [12]
                0.00 0.00 3918/4030 QList<QString>::begin() [1811]
                0.00 0.00 1959/34383 QList<QString>::end() [1233]
                0.00 0.00 1959/1959 QList<QString>::empty() const [2466]
-----------------------------------------------
                               45051 void QAlgorithmsPrivate::qSortHelper<QList<QString>::iterator, QString, qLess<QString> >(QList<QString>::iterator, QList<QStrin$
                0.00 0.04 1959/1959 void QAlgorithmsPrivate::qSortHelper<QList<QString>::iterator, QString>(QList<QString>::iterator, QList<QString>::iterator, QSt
[9] 22.0 0.00 0.04 1959+45051 void QAlgorithmsPrivate::qSortHelper<QList<QString>::iterator, QString, qLess<QString> >(QList<QString>::iterator, QList<QString>::
                0.03 0.00 2393318/2427252 QList<QString>::iterator::operator*() const [12]
                0.01 0.00 663961/663961 QList<QString>::iterator::operator<(QList<QString>::iterator const&) const [34]
                0.00 0.00 906799/906799 qLess<QString>::operator()(QString const&, QString const&) const [2243]
                0.00 0.00 385809/385812 QList<QString>::iterator::operator--() [2247]
                0.00 0.00 378035/409969 QList<QString>::iterator::operator++() [2246]
                0.00 0.00 332926/332926 QList<QString>::iterator::operator>(QList<QString>::iterator const&) const [2249]
                0.00 0.00 289860/289860 void qSwap<QString>(QString&, QString&) [2254]
                0.00 0.00 262468/266388 QList<QString>::iterator::iterator(QList<QString>::iterator const&) [2256]
                0.00 0.00 125356/125443 QList<QString>::iterator::operator+(long long) const [2276]
                0.00 0.00 92061/92061 QList<QString>::iterator::operator-(QList<QString>::iterator) const [2280]
                0.00 0.00 80305/80305 QList<QString>::iterator::operator-(long long) const [2281]
                               45051 void QAlgorithmsPrivate::qSortHelper<QList<QString>::iterator, QString, qLess<QString> >(QList<QString>::iterator, QList<QStrin
-----------------------------------------------
TagsNo tags attached.
Patch

Relationships

duplicate of 0015711 new scribus is slow starting up 

Activities

jghali

2019-06-13 11:14

administrator   ~0046299

Closing as this is a duplicate of 0015711

Issue History

Date Modified Username Field Change
2019-06-13 04:35 william New Issue
2019-06-13 11:14 jghali Assigned To => jghali
2019-06-13 11:14 jghali Status new => resolved
2019-06-13 11:14 jghali Resolution open => duplicate
2019-06-13 11:14 jghali Note Added: 0046299
2019-06-13 11:14 jghali Relationship added duplicate of 0015711
2019-06-13 11:14 jghali Status resolved => closed