Project

General

Profile

Bug #1435

Лаги при переключении вкладок

Added by Mellon about 5 years ago. Updated about 5 years ago.

Status:
Closed
Priority:
Low
Assignee:
Category:
Core
Target version:
Start date:
11/18/2013
Due date:
% Done:

100%

Estimated time:
9.00 h
Reported in:
master

Description

Где-то от 1 до 3 недель назад, переключение вкладок стало занимать ощутимо большее время, особенно это касается перерисовки панели инструментов на вкладках. Лаги становятся ещё ощутимей, при сравнительно малой доступности фс (при высоком IO). Прошу как-нибудь проверить этот аспект при удобном случае.

Expected result:

Actual result:

STR:

System information:
LeechCraft 0.5.95-3493-g43f5a29
Built with Qt 4.8.5, running with Qt 4.8.5
Running on: NAME=Gentoo x86_64 3.12.0-gentoo #1 SMP PREEMPT Wed Nov 13 02:02:02 MSK 2013

History

#1 Updated by 0xd34df00d about 5 years ago

Оно точно в какой-нибудь там своп не сваливается?

У меня что-то аналогичное на ноуте происходит, грешу на кривые настройки ядра с некорректным io-шедулером.

#2 Updated by Mellon about 5 years ago

# swapon -s
Filename                                Type            Size    Used    Priority
/dev/sda4                               partition       10759168        0       0
/dev/zram0                              partition       6291452 1830764 10

если и уходит в свап, то явно не на хард.

#3 Updated by 0xd34df00d about 5 years ago

Ну, у меня в своп тоже не уходит, а при eix-sync или конпеляции gcc (даже с /var/tmp/portage в tmpfs, что интересно) тоже подтормаживает.

Так что, может. даже и не в ФС дело, хз. Если лаги достаточно большие, этак с секунду, можно запустить lc из-под gdb, добиться лага, быстренько alt-tab-нуться в консоль и нажать Ctrl+C, и посмотреть, где оно висит.

#4 Updated by Mellon about 5 years ago

трейсы при лагах >0.5с
1.

(gdb) bt
#0  0x00007ffff4af2c97 in ftruncate64 () from /lib64/libc.so.6
#1  0x00007ffff5d33090 in QFSFileEngine::setSize(long long) () from /usr/lib64/qt4/libQtCore.so.4
#2  0x00007ffff5cd6dc7 in QFile::resize(long long) () from /usr/lib64/qt4/libQtCore.so.4
#3  0x00007ffff5d1fd5e in QConfFileSettingsPrivate::syncConfFile(int) () from /usr/lib64/qt4/libQtCore.so.4
#4  0x00007ffff5d20221 in QConfFileSettingsPrivate::sync() () from /usr/lib64/qt4/libQtCore.so.4
#5  0x00007ffff5d16d32 in QSettings::~QSettings() () from /usr/lib64/qt4/libQtCore.so.4
#6  0x00007ffff5d16d9d in QSettings::~QSettings() () from /usr/lib64/qt4/libQtCore.so.4
#7  0x00007ffff5439639 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() [clone .local.550] (this=0x55555b075f90)
    at /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/bits/shared_ptr_base.h:147
#8  0x00007ffff545d5cf in __base_dtor (this=0x7fffffffa778) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/bits/shared_ptr_base.h:558
#9  __base_dtor (this=0x7fffffffa770) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/bits/shared_ptr_base.h:813
#10 __base_dtor (this=0x7fffffffa770) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/bits/shared_ptr.h:93
#11 LeechCraft::Util::BaseSettingsManager::event (this=0x7fffe05918c0 <LeechCraft::Azoth::XmlSettingsManager::Instance()::xsm>, e=<optimized out>)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/xmlsettingsdialog/basesettingsmanager.cpp:155
#12 0x00007ffff6b01b55 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#13 0x00007ffff6b04c0b in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#14 0x00005555555faab5 in LeechCraft::Application::notify(QObject*, QEvent*) (this=<optimized out>, 
    obj=0x7fffe05918c0 <LeechCraft::Azoth::XmlSettingsManager::Instance()::xsm>, event=0x7fffffffada0)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/application.cpp:323
#15 0x00007ffff5d6353e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#16 0x00007ffff5d815bb in QObject::setProperty(char const*, QVariant const&) () from /usr/lib64/qt4/libQtCore.so.4
#17 0x00007fffe023ecb5 in LeechCraft::Azoth::(anonymous namespace)::SetExpanded (idx=..., expanded=<optimized out>)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999/src/plugins/azoth/mainwidget.cpp:934
#18 0x00007fffe030859b in LeechCraft::Azoth::MainWidget::qt_metacall (this=0x5555561f1c30, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0x7fffffffafc0)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999_build/moc_mainwidget.cpp:178
#19 0x00007ffff5d7d5c3 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#20 0x00007ffff71626b2 in QTreeView::expanded(QModelIndex const&) () from /usr/lib64/qt4/libQtGui.so.4
#21 0x00007ffff716ec6b in QTreeView::expand(QModelIndex const&) () from /usr/lib64/qt4/libQtGui.so.4
#22 0x00007fffe0244463 in LeechCraft::Azoth::MainWidget::handleCLMode (this=0x5555561f1c30, mucMode=<optimized out>)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999/src/plugins/azoth/mainwidget.cpp:825
#23 0x00007ffff5d7d35f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#24 0x00007ffff6af9092 in QAction::toggled(bool) () from /usr/lib64/qt4/libQtGui.so.4
#25 0x00007ffff6afa845 in QAction::setChecked(bool) () from /usr/lib64/qt4/libQtGui.so.4
#26 0x00007fffe02401f9 in LeechCraft::Azoth::MainWidget::handleEntryLostCurrent (this=0x5555561f1c30)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999/src/plugins/azoth/mainwidget.cpp:779
#27 0x00007ffff5d7d35f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#28 0x00007fffe0301c62 in LeechCraft::Azoth::ChatTabsManager::entryLostCurrent (this=this@entry=0x55555618dc80, _t1=0x55555a4175b0)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999_build/moc_chattabsmanager.cpp:181
#29 0x00007fffe0303ed8 in LeechCraft::Azoth::ChatTabsManager::qt_static_metacall (_o=0x55555618dc80, _c=<optimized out>, _id=<optimized out>, _a=0x7fffffffb6f0)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999_build/moc_chattabsmanager.cpp:79
#30 0x00007ffff5d7d35f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#31 0x00007fffe0301872 in LeechCraft::Azoth::ChatTab::entryLostCurrent (this=<optimized out>, _t1=0x55555a4175b0)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999_build/moc_chattab.cpp:327
#32 0x00007fffe0257b60 in LeechCraft::Azoth::ChatTab::TabLostCurrent (this=0x55555a35aa00)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999/src/plugins/azoth/chattab.cpp:377
#33 0x00005555555f3c68 in LeechCraft::TabManager::handleCurrentChanged(int) (this=0x555555b3e2d0, index=3)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/tabmanager.cpp:318
#34 0x000055555562237f in qt_static_metacall (_o=0x555555b3e2d0, _c=<optimized out>, _id=13, _a=0x7fffffffb8f0)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999_build/core/moc_tabmanager.cpp:90
#35 0x00007ffff5d7d35f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
---Type <return> to continue, or q <return> to quit--- 
#36 0x0000555555591fc1 in LeechCraft::SeparateTabWidget::currentChanged(int) (this=<optimized out>, _t1=3)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999_build/core/moc_separatetabwidget.cpp:191
#37 0x00005555555e673b in LeechCraft::SeparateTabWidget::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x555555b3f160, _c=<optimized out>, _id=10, 
    _a=0x7fffffffbab0) at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999_build/core/moc_separatetabwidget.cpp:100
#38 0x00007ffff5d7d35f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#39 0x00007ffff70376fe in QTabBar::currentChanged(int) () from /usr/lib64/qt4/libQtGui.so.4
#40 0x00007ffff703ded5 in QTabBar::mousePressEvent(QMouseEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#41 0x00005555555eb0bd in _ZN10LeechCraft14SeparateTabBar15mousePressEventEP11QMouseEvent.part.11 (event=0x7fffffffc4e0, this=0x555555b618c0)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/separatetabbar.cpp:189
#42 LeechCraft::SeparateTabBar::mousePressEvent(QMouseEvent*) (this=0x555555b618c0, event=0x7fffffffc4e0)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/separatetabbar.cpp:179
#43 0x00007ffff6b666fe in QWidget::event(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#44 0x00007ffff7041372 in QTabBar::event(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#45 0x00007ffff6b01b55 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#46 0x00007ffff6b056ed in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#47 0x00005555555faab5 in LeechCraft::Application::notify(QObject*, QEvent*) (this=<optimized out>, obj=0x555555b618c0, event=0x7fffffffc4e0)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/application.cpp:323
#48 0x00007ffff5d6353e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#49 0x00007ffff6b08aed in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
   from /usr/lib64/qt4/libQtGui.so.4
#50 0x00007ffff6b9a76e in QETWidget::translateMouseEvent(_XEvent const*) () from /usr/lib64/qt4/libQtGui.so.4
#51 0x00007ffff6b994e1 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#52 0x00007ffff6bc9212 in x11EventSourceDispatch(_GSource*, int (*)(void*), void*) () from /usr/lib64/qt4/libQtGui.so.4
#53 0x00007ffff3381fb5 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#54 0x00007ffff3382318 in ?? () from /usr/lib64/libglib-2.0.so.0
#55 0x00007ffff338240c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#56 0x00007ffff5d9c026 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#57 0x00007ffff6bc9356 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtGui.so.4
#58 0x00007ffff5d6142f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#59 0x00007ffff5d617a8 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#60 0x00007ffff5d68638 in QCoreApplication::exec() () from /usr/lib64/qt4/libQtCore.so.4
#61 0x000055555558eba5 in main (argc=1, argv=0x7fffffffd268) at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/main.cpp:40

2.
(gdb) bt
#0  0x00007ffff2eecca9 in png_write_row () from /usr/lib64/libpng16.so.16
#1  0x00007ffff2f05eff in png_write_rows () from /usr/lib64/libpng16.so.16
#2  0x00007ffff6c2d256 in QPNGImageWriter::writeImage(QImage const&, int, QString const&, int, int) () from /usr/lib64/qt4/libQtGui.so.4
#3  0x00007ffff6c2deff in QPngHandler::write(QImage const&) () from /usr/lib64/qt4/libQtGui.so.4
#4  0x00007ffff6bf650a in QImageWriter::write(QImage const&) () from /usr/lib64/qt4/libQtGui.so.4
#5  0x00007ffff6be008e in operator<<(QDataStream&, QImage const&) () from /usr/lib64/qt4/libQtGui.so.4
#6  0x00007ffff6c0521b in operator<<(QDataStream&, QPixmap const&) () from /usr/lib64/qt4/libQtGui.so.4
#7  0x00007ffff6bce3d4 in QPixmapIconEngine::write(QDataStream&) const () from /usr/lib64/qt4/libQtGui.so.4
#8  0x00007ffff6bcdf13 in operator<<(QDataStream&, QIcon const&) () from /usr/lib64/qt4/libQtGui.so.4
#9  0x00007fffb90014c2 in LeechCraft::TabSessManager::Plugin::GetCurrentSession (this=<optimized out>)
    at /var/tmp/portage/app-leechcraft/lc-tabsessmanager-9999/work/lc-tabsessmanager-9999/src/plugins/tabsessmanager/tabsessmanager.cpp:207
#10 0x00007fffb9005228 in saveDefaultSession (this=this@entry=0x555555df91d0)
    at /var/tmp/portage/app-leechcraft/lc-tabsessmanager-9999/work/lc-tabsessmanager-9999/src/plugins/tabsessmanager/tabsessmanager.cpp:523
#11 0x00007fffb9005928 in qt_static_metacall (_o=0x555555df91d0, _c=<optimized out>, _id=8, _a=0x7fffffffc640)
    at /var/tmp/portage/app-leechcraft/lc-tabsessmanager-9999/work/lc-tabsessmanager-9999_build/moc_tabsessmanager.cpp:80
#12 0x00007ffff5d7d35f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#13 0x00007ffff5d880b3 in QSingleShotTimer::timerEvent(QTimerEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#14 0x00007ffff5d82dac in QObject::event(QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#15 0x00007ffff6b01b55 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#16 0x00007ffff6b04c0b in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#17 0x00005555555faab5 in LeechCraft::Application::notify(QObject*, QEvent*) (this=<optimized out>, obj=0x55555b4da070, event=0x7fffffffcda0)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/application.cpp:323
#18 0x00007ffff5d6353e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#19 0x00007ffff5da0072 in QTimerInfoList::activateTimers() () from /usr/lib64/qt4/libQtCore.so.4
#20 0x00007ffff5d9b5cd in timerSourceDispatch(_GSource*, int (*)(void*), void*) () from /usr/lib64/qt4/libQtCore.so.4
#21 0x00007ffff3381fb5 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#22 0x00007ffff3382318 in ?? () from /usr/lib64/libglib-2.0.so.0
#23 0x00007ffff338240c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#24 0x00007ffff5d9c026 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#25 0x00007ffff6bc9356 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtGui.so.4
#26 0x00007ffff5d6142f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#27 0x00007ffff5d617a8 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#28 0x00007ffff5d68638 in QCoreApplication::exec() () from /usr/lib64/qt4/libQtCore.so.4
#29 0x000055555558eba5 in main (argc=1, argv=0x7fffffffd268) at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/main.cpp:40

3.
(gdb) bt
#0  0x00007ffff4af2c97 in ftruncate64 () from /lib64/libc.so.6
#1  0x00007ffff5d33090 in QFSFileEngine::setSize(long long) () from /usr/lib64/qt4/libQtCore.so.4
#2  0x00007ffff5cd6dc7 in QFile::resize(long long) () from /usr/lib64/qt4/libQtCore.so.4
#3  0x00007ffff5d1fd5e in QConfFileSettingsPrivate::syncConfFile(int) () from /usr/lib64/qt4/libQtCore.so.4
#4  0x00007ffff5d20221 in QConfFileSettingsPrivate::sync() () from /usr/lib64/qt4/libQtCore.so.4
#5  0x00007ffff5d16d32 in QSettings::~QSettings() () from /usr/lib64/qt4/libQtCore.so.4
#6  0x00007ffff5d16d9d in QSettings::~QSettings() () from /usr/lib64/qt4/libQtCore.so.4
#7  0x00007ffff5439639 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() [clone .local.550] (this=0x55555b31ba00)
    at /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/bits/shared_ptr_base.h:147
#8  0x00007ffff545d5cf in __base_dtor (this=0x7fffffffa778) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/bits/shared_ptr_base.h:558
#9  __base_dtor (this=0x7fffffffa770) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/bits/shared_ptr_base.h:813
#10 __base_dtor (this=0x7fffffffa770) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/bits/shared_ptr.h:93
#11 LeechCraft::Util::BaseSettingsManager::event (this=0x7fffe05918c0 <LeechCraft::Azoth::XmlSettingsManager::Instance()::xsm>, e=<optimized out>)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/xmlsettingsdialog/basesettingsmanager.cpp:155
#12 0x00007ffff6b01b55 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#13 0x00007ffff6b04c0b in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#14 0x00005555555faab5 in LeechCraft::Application::notify(QObject*, QEvent*) (this=<optimized out>, 
    obj=0x7fffe05918c0 <LeechCraft::Azoth::XmlSettingsManager::Instance()::xsm>, event=0x7fffffffada0)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/application.cpp:323
#15 0x00007ffff5d6353e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#16 0x00007ffff5d815bb in QObject::setProperty(char const*, QVariant const&) () from /usr/lib64/qt4/libQtCore.so.4
#17 0x00007fffe023ecb5 in LeechCraft::Azoth::(anonymous namespace)::SetExpanded (idx=..., expanded=<optimized out>)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999/src/plugins/azoth/mainwidget.cpp:934
#18 0x00007fffe030859b in LeechCraft::Azoth::MainWidget::qt_metacall (this=0x5555561f1c30, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0x7fffffffafc0)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999_build/moc_mainwidget.cpp:178
#19 0x00007ffff5d7d5c3 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#20 0x00007ffff71626b2 in QTreeView::expanded(QModelIndex const&) () from /usr/lib64/qt4/libQtGui.so.4
#21 0x00007ffff716ec6b in QTreeView::expand(QModelIndex const&) () from /usr/lib64/qt4/libQtGui.so.4
#22 0x00007fffe0244463 in LeechCraft::Azoth::MainWidget::handleCLMode (this=0x5555561f1c30, mucMode=<optimized out>)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999/src/plugins/azoth/mainwidget.cpp:825
#23 0x00007ffff5d7d35f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#24 0x00007ffff6af9092 in QAction::toggled(bool) () from /usr/lib64/qt4/libQtGui.so.4
#25 0x00007ffff6afa845 in QAction::setChecked(bool) () from /usr/lib64/qt4/libQtGui.so.4
#26 0x00007fffe02401f9 in LeechCraft::Azoth::MainWidget::handleEntryLostCurrent (this=0x5555561f1c30)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999/src/plugins/azoth/mainwidget.cpp:779
#27 0x00007ffff5d7d35f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#28 0x00007fffe0301c62 in LeechCraft::Azoth::ChatTabsManager::entryLostCurrent (this=this@entry=0x55555618dc80, _t1=0x55555a7772c0)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999_build/moc_chattabsmanager.cpp:181
#29 0x00007fffe0303ed8 in LeechCraft::Azoth::ChatTabsManager::qt_static_metacall (_o=0x55555618dc80, _c=<optimized out>, _id=<optimized out>, _a=0x7fffffffb6f0)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999_build/moc_chattabsmanager.cpp:79
#30 0x00007ffff5d7d35f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#31 0x00007fffe0301872 in LeechCraft::Azoth::ChatTab::entryLostCurrent (this=<optimized out>, _t1=0x55555a7772c0)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999_build/moc_chattab.cpp:327
#32 0x00007fffe0257b60 in LeechCraft::Azoth::ChatTab::TabLostCurrent (this=0x55555aac6150)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999/src/plugins/azoth/chattab.cpp:377
#33 0x00005555555f3c68 in LeechCraft::TabManager::handleCurrentChanged(int) (this=0x555555b3e2d0, index=4)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/tabmanager.cpp:318
#34 0x000055555562237f in qt_static_metacall (_o=0x555555b3e2d0, _c=<optimized out>, _id=13, _a=0x7fffffffb8f0)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999_build/core/moc_tabmanager.cpp:90
#35 0x00007ffff5d7d35f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
---Type <return> to continue, or q <return> to quit---
#36 0x0000555555591fc1 in LeechCraft::SeparateTabWidget::currentChanged(int) (this=<optimized out>, _t1=4)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999_build/core/moc_separatetabwidget.cpp:191
#37 0x00005555555e673b in LeechCraft::SeparateTabWidget::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x555555b3f160, _c=<optimized out>, _id=10, 
    _a=0x7fffffffbab0) at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999_build/core/moc_separatetabwidget.cpp:100
#38 0x00007ffff5d7d35f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#39 0x00007ffff70376fe in QTabBar::currentChanged(int) () from /usr/lib64/qt4/libQtGui.so.4
#40 0x00007ffff703ded5 in QTabBar::mousePressEvent(QMouseEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#41 0x00005555555eb0bd in _ZN10LeechCraft14SeparateTabBar15mousePressEventEP11QMouseEvent.part.11 (event=0x7fffffffc4e0, this=0x555555b618c0)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/separatetabbar.cpp:189
#42 LeechCraft::SeparateTabBar::mousePressEvent(QMouseEvent*) (this=0x555555b618c0, event=0x7fffffffc4e0)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/separatetabbar.cpp:179
#43 0x00007ffff6b666fe in QWidget::event(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#44 0x00007ffff7041372 in QTabBar::event(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#45 0x00007ffff6b01b55 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#46 0x00007ffff6b056ed in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#47 0x00005555555faab5 in LeechCraft::Application::notify(QObject*, QEvent*) (this=<optimized out>, obj=0x555555b618c0, event=0x7fffffffc4e0)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/application.cpp:323
#48 0x00007ffff5d6353e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#49 0x00007ffff6b08aed in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
   from /usr/lib64/qt4/libQtGui.so.4
#50 0x00007ffff6b9a76e in QETWidget::translateMouseEvent(_XEvent const*) () from /usr/lib64/qt4/libQtGui.so.4
#51 0x00007ffff6b994e1 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#52 0x00007ffff6bc9212 in x11EventSourceDispatch(_GSource*, int (*)(void*), void*) () from /usr/lib64/qt4/libQtGui.so.4
#53 0x00007ffff3381fb5 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#54 0x00007ffff3382318 in ?? () from /usr/lib64/libglib-2.0.so.0
#55 0x00007ffff338240c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#56 0x00007ffff5d9c026 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#57 0x00007ffff6bc9356 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtGui.so.4
#58 0x00007ffff5d6142f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#59 0x00007ffff5d617a8 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#60 0x00007ffff5d68638 in QCoreApplication::exec() () from /usr/lib64/qt4/libQtCore.so.4
#61 0x000055555558eba5 in main (argc=1, argv=0x7fffffffd268) at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/main.cpp:40

#5 Updated by 0xd34df00d about 5 years ago

  • Status changed from New to Assigned
  • Target version set to 0.6.60

#6 Updated by Mellon about 5 years ago

хм, теперь и мне видно.
при переключении на и из вкладки азота создается очень много потоков, например:

[New Thread 0x7fff1103d700 (LWP 27216)]
[New Thread 0x7fff137ff700 (LWP 27218)]
[New Thread 0x7fff1203f700 (LWP 27219)]
[New Thread 0x7fff1003b700 (LWP 27220)]
[New Thread 0x7fff2cc27700 (LWP 27221)]
[New Thread 0x7fff1b530700 (LWP 27222)]
[Thread 0x7fff1103d700 (LWP 27216) exited]
[New Thread 0x7fff1103d700 (LWP 27225)]
[New Thread 0x7fff12ffe700 (LWP 27227)]
[New Thread 0x7fff1183e700 (LWP 27228)]
[New Thread 0x7fff1083c700 (LWP 27229)]
[Thread 0x7fff2cc27700 (LWP 27221) exited]
[New Thread 0x7fff2cc27700 (LWP 27230)]
[New Thread 0x7fff0f83a700 (LWP 27231)]
[New Thread 0x7fff0f039700 (LWP 27232)]
[Thread 0x7fff1b530700 (LWP 27222) exited]
[New Thread 0x7fff1b530700 (LWP 27233)]
[New Thread 0x7fff0e838700 (LWP 27234)]
[New Thread 0x7fff0e037700 (LWP 27235)]
[New Thread 0x7fff0d836700 (LWP 27236)]
[New Thread 0x7fff0d035700 (LWP 27237)]
[Thread 0x7fff1003b700 (LWP 27220) exited]
[New Thread 0x7fff0c834700 (LWP 27238)]
[New Thread 0x7fff1003b700 (LWP 27239)]
[New Thread 0x7fff0c033700 (LWP 27241)]
[New Thread 0x7fff0b832700 (LWP 27242)]
[New Thread 0x7fff0b031700 (LWP 27244)]
[New Thread 0x7fff0a830700 (LWP 27246)]
[New Thread 0x7fff0a02f700 (LWP 27247)]
[New Thread 0x7fff0982e700 (LWP 27248)]
[New Thread 0x7fff0902d700 (LWP 27249)]
[New Thread 0x7fff0882c700 (LWP 27250)]
[New Thread 0x7fff07439700 (LWP 27251)]
[New Thread 0x7fff06c38700 (LWP 27252)]
[New Thread 0x7fff06437700 (LWP 27254)]
[New Thread 0x7fff05c36700 (LWP 27257)]
[New Thread 0x7fff05435700 (LWP 27258)]
[New Thread 0x7fff04c34700 (LWP 27260)]
[Thread 0x7fff06437700 (LWP 27254) exited]
[Thread 0x7fff0902d700 (LWP 27249) exited]
[Thread 0x7fff0a830700 (LWP 27246) exited]
[Thread 0x7fff05c36700 (LWP 27257) exited]
[Thread 0x7fff06c38700 (LWP 27252) exited]
[Thread 0x7fff04c34700 (LWP 27260) exited]
[Thread 0x7fff05435700 (LWP 27258) exited]
[Thread 0x7fff0a02f700 (LWP 27247) exited]
[Thread 0x7fff0982e700 (LWP 27248) exited]
[Thread 0x7fff0882c700 (LWP 27250) exited]
[Thread 0x7fff07439700 (LWP 27251) exited]
[Thread 0x7fff0b031700 (LWP 27244) exited]
[Thread 0x7fff0b832700 (LWP 27242) exited]
[Thread 0x7fff0d035700 (LWP 27237) exited]
[Thread 0x7fff0c834700 (LWP 27238) exited]
[Thread 0x7fff0c033700 (LWP 27241) exited]
[Thread 0x7fff1003b700 (LWP 27239) exited]
[Thread 0x7fff0e838700 (LWP 27234) exited]
[Thread 0x7fff0d836700 (LWP 27236) exited]
[Thread 0x7fff1b530700 (LWP 27233) exited]
[Thread 0x7fff0e037700 (LWP 27235) exited]
[Thread 0x7fff2cc27700 (LWP 27230) exited]
[Thread 0x7fff0f039700 (LWP 27232) exited]
[Thread 0x7fff1183e700 (LWP 27228) exited]
[Thread 0x7fff1083c700 (LWP 27229) exited]
[Thread 0x7fff0f83a700 (LWP 27231) exited]
[Thread 0x7fff1103d700 (LWP 27225) exited]
[Thread 0x7fff12ffe700 (LWP 27227) exited]
[Thread 0x7fff137ff700 (LWP 27218) exited]
[Thread 0x7fff1203f700 (LWP 27219) exited]

в то время как переключении между вкладками других типов - всё норм. например пошуку2пошуку, пошуку2лмп

ну торадиционно трейс

(gdb) bt
#0  0x00007ffff45e4d90 in __nptl_create_event () from /lib64/libpthread.so.0
#1  0x00007ffff45e67b3 in pthread_create@@GLIBC_2.2.5 () from /lib64/libpthread.so.0
#2  0x00007ffff4e7f258 in std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>) () from /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/libstdc++.so.6
#3  0x00007ffff54376e4 in std::thread::__base_ctor (this=0x7fffffffa6e0, __f=...) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/thread:133
#4  0x00007ffff545788b in LeechCraft::Util::BaseSettingsManager::event(QEvent*) (this=0x7fffd94c48c0 <LeechCraft::Azoth::XmlSettingsManager::Instance()::xsm>, 
    e=<optimized out>) at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/xmlsettingsdialog/basesettingsmanager.cpp:160
#5  0x00007ffff6b01b55 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#6  0x00007ffff6b04c0b in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#7  0x00005555555faab5 in LeechCraft::Application::notify(QObject*, QEvent*) (this=<optimized out>, 
    obj=0x7fffd94c48c0 <LeechCraft::Azoth::XmlSettingsManager::Instance()::xsm>, event=0x7fffffffad90)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/application.cpp:323
#8  0x00007ffff5d6353e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#9  0x00007ffff5d815bb in QObject::setProperty(char const*, QVariant const&) () from /usr/lib64/qt4/libQtCore.so.4
#10 0x00007fffd9171cb5 in LeechCraft::Azoth::(anonymous namespace)::SetExpanded (idx=..., expanded=<optimized out>)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999/src/plugins/azoth/mainwidget.cpp:934
#11 0x00007fffd923b59b in LeechCraft::Azoth::MainWidget::qt_metacall (this=0x5555561fa530, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0x7fffffffafb0)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999_build/moc_mainwidget.cpp:178
#12 0x00007ffff5d7d5c3 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#13 0x00007ffff71626b2 in QTreeView::expanded(QModelIndex const&) () from /usr/lib64/qt4/libQtGui.so.4
#14 0x00007ffff716ec6b in QTreeView::expand(QModelIndex const&) () from /usr/lib64/qt4/libQtGui.so.4
#15 0x00007fffd9177525 in LeechCraft::Azoth::MainWidget::handleCLMode (this=0x5555561fa530, mucMode=<optimized out>)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999/src/plugins/azoth/mainwidget.cpp:832
#16 0x00007ffff5d7d35f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#17 0x00007ffff6af9092 in QAction::toggled(bool) () from /usr/lib64/qt4/libQtGui.so.4
#18 0x00007ffff6afa845 in QAction::setChecked(bool) () from /usr/lib64/qt4/libQtGui.so.4
#19 0x00007fffd91731f9 in LeechCraft::Azoth::MainWidget::handleEntryLostCurrent (this=0x5555561fa530)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999/src/plugins/azoth/mainwidget.cpp:779
#20 0x00007ffff5d7d35f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#21 0x00007fffd9234c62 in LeechCraft::Azoth::ChatTabsManager::entryLostCurrent (this=this@entry=0x555556195620, _t1=0x55555fddf3b0)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999_build/moc_chattabsmanager.cpp:181
#22 0x00007fffd9236ed8 in LeechCraft::Azoth::ChatTabsManager::qt_static_metacall (_o=0x555556195620, _c=<optimized out>, _id=<optimized out>, _a=0x7fffffffb6e0)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999_build/moc_chattabsmanager.cpp:79
#23 0x00007ffff5d7d35f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#24 0x00007fffd9234872 in LeechCraft::Azoth::ChatTab::entryLostCurrent (this=<optimized out>, _t1=0x55555fddf3b0)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999_build/moc_chattab.cpp:327
#25 0x00007fffd918ab60 in LeechCraft::Azoth::ChatTab::TabLostCurrent (this=0x55555fdfbcf0)
    at /var/tmp/portage/app-leechcraft/lc-azoth-9999/work/lc-azoth-9999/src/plugins/azoth/chattab.cpp:377
#26 0x00005555555f3c68 in LeechCraft::TabManager::handleCurrentChanged(int) (this=0x555555cd33c0, index=2)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/tabmanager.cpp:318
#27 0x000055555562237f in qt_static_metacall (_o=0x555555cd33c0, _c=<optimized out>, _id=13, _a=0x7fffffffb8e0)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999_build/core/moc_tabmanager.cpp:90
#28 0x00007ffff5d7d35f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#29 0x0000555555591fc1 in LeechCraft::SeparateTabWidget::currentChanged(int) (this=<optimized out>, _t1=2)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999_build/core/moc_separatetabwidget.cpp:191
#30 0x00005555555e673b in LeechCraft::SeparateTabWidget::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x555555bc4d50, _c=<optimized out>, _id=10, 
    _a=0x7fffffffbaa0) at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999_build/core/moc_separatetabwidget.cpp:100
#31 0x00007ffff5d7d35f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#32 0x00007ffff70376fe in QTabBar::currentChanged(int) () from /usr/lib64/qt4/libQtGui.so.4
#33 0x00007ffff703ded5 in QTabBar::mousePressEvent(QMouseEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#34 0x00005555555eb0bd in _ZN10LeechCraft14SeparateTabBar15mousePressEventEP11QMouseEvent.part.11 (event=0x7fffffffc4d0, this=0x555555b25610)
---Type <return> to continue, or q <return> to quit---
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/separatetabbar.cpp:189
#35 LeechCraft::SeparateTabBar::mousePressEvent(QMouseEvent*) (this=0x555555b25610, event=0x7fffffffc4d0)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/separatetabbar.cpp:179
#36 0x00007ffff6b666fe in QWidget::event(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#37 0x00007ffff7041372 in QTabBar::event(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#38 0x00007ffff6b01b55 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#39 0x00007ffff6b056ed in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#40 0x00005555555faab5 in LeechCraft::Application::notify(QObject*, QEvent*) (this=<optimized out>, obj=0x555555b25610, event=0x7fffffffc4d0)
    at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/application.cpp:323
#41 0x00007ffff5d6353e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#42 0x00007ffff6b08aed in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
   from /usr/lib64/qt4/libQtGui.so.4
#43 0x00007ffff6b9a76e in QETWidget::translateMouseEvent(_XEvent const*) () from /usr/lib64/qt4/libQtGui.so.4
#44 0x00007ffff6b994e1 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#45 0x00007ffff6bc9212 in x11EventSourceDispatch(_GSource*, int (*)(void*), void*) () from /usr/lib64/qt4/libQtGui.so.4
#46 0x00007ffff3380fb5 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#47 0x00007ffff3381318 in ?? () from /usr/lib64/libglib-2.0.so.0
#48 0x00007ffff338140c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#49 0x00007ffff5d9c026 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#50 0x00007ffff6bc9356 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtGui.so.4
#51 0x00007ffff5d6142f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#52 0x00007ffff5d617a8 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#53 0x00007ffff5d68638 in QCoreApplication::exec() () from /usr/lib64/qt4/libQtCore.so.4
#54 0x000055555558eba5 in main (argc=1, argv=0x7fffffffd258) at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/main.cpp:40

#7 Updated by 0xd34df00d about 5 years ago

Судя по тому, что потоки все завершаются, похоже, сильно потом, всё упирается в IO. почему при этом тормозит UI, я не знаю :( Попробую ещё кое-что, stay tuned.

#8 Updated by 0xd34df00d about 5 years ago

  • Estimated time set to 7.00 h

#9 Updated by 0xd34df00d about 5 years ago

  • Status changed from Assigned to Resolved
  • % Done changed from 0 to 100

Applied in changeset main|commit:4b1dba9278e3504c0fd6a4a9c31b735e14700a49.

#10 Updated by Mellon about 5 years ago

Нуждается в более тщательном тестировании. Завтра добью.
По предварительным тестам, субъективно вроде стало шустрее.

#11 Updated by Mellon about 5 years ago

хм... ок, определенно стало чуть лучше, в смысле, в отсутствии дополнительной нагрузки на CPU и IO переключение вкладок азота занимает 0.3<=(0.43;0.55)<=0.7с на powersave. Для сравнения переключение в аналогичных условиях между вкладками пошуку занимает в среднем 0.1-0.2с, а в других браузерах и того меньше (chrome, fx, qupzilla).

(gdb) bt
#0  0x00007ffff5d222de in QMap<QSettingsKey, QVariant>::detach_helper() () from /usr/lib64/qt4/libQtCore.so.4
#1  0x00007ffff5d181b6 in QConfFile::mergedKeyMap() const () from /usr/lib64/qt4/libQtCore.so.4
#2  0x00007ffff5d1fa2d in QConfFileSettingsPrivate::syncConfFile(int) () from /usr/lib64/qt4/libQtCore.so.4
#3  0x00007ffff5d20221 in QConfFileSettingsPrivate::sync() () from /usr/lib64/qt4/libQtCore.so.4
#4  0x00007ffff5d16d32 in QSettings::~QSettings() () from /usr/lib64/qt4/libQtCore.so.4
#5  0x00007ffff5d16d9d in QSettings::~QSettings() () from /usr/lib64/qt4/libQtCore.so.4
#6  0x00007ffff5442942 in _M_release (this=0x5555623c9980) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/bits/shared_ptr_base.h:147
#7  __base_dtor (this=0x5555610576d8) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/bits/shared_ptr_base.h:558
#8  __base_dtor (this=0x5555610576d0) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/bits/shared_ptr_base.h:813
#9  __base_dtor (this=0x5555610576d0) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/bits/shared_ptr.h:93
#10 qMetaTypeDeleteHelper<std::shared_ptr<QSettings> >(std::shared_ptr<QSettings>*) [clone .local.676] (t=0x5555610576d0) at /usr/include/qt4/QtCore/qmetatype.h:134
#11 0x00007ffff5d71af2 in QMetaType::destroy(int, void*) () from /usr/lib64/qt4/libQtCore.so.4
#12 0x00007ffff5d779bc in QMetaCallEvent::~QMetaCallEvent() () from /usr/lib64/qt4/libQtCore.so.4
#13 0x00007ffff5d77a4d in QMetaCallEvent::~QMetaCallEvent() () from /usr/lib64/qt4/libQtCore.so.4
#14 0x00007ffff5d67422 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib64/qt4/libQtCore.so.4
#15 0x00007ffff5d9be37 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () from /usr/lib64/qt4/libQtCore.so.4
#16 0x00007ffff3380fb5 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#17 0x00007ffff3381318 in ?? () from /usr/lib64/libglib-2.0.so.0
#18 0x00007ffff338140c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#19 0x00007ffff5d9c026 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#20 0x00007ffff6bc9356 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtGui.so.4
#21 0x00007ffff5d6142f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#22 0x00007ffff5d617a8 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#23 0x00007ffff5d68638 in QCoreApplication::exec() () from /usr/lib64/qt4/libQtCore.so.4
#24 0x000055555558ea95 in main (argc=1, argv=0x7fffffffd268) at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/main.cpp:40

(gdb) bt
#0  0x00007ffff5d16813 in QSettingsPrivate::iniEscapedString(QString const&, QByteArray&, QTextCodec*) () from /usr/lib64/qt4/libQtCore.so.4
#1  0x00007ffff5d16907 in QSettingsPrivate::iniEscapedStringList(QStringList const&, QByteArray&, QTextCodec*) () from /usr/lib64/qt4/libQtCore.so.4
#2  0x00007ffff5d1ef55 in QConfFileSettingsPrivate::writeIniFile(QIODevice&, QMap<QSettingsKey, QVariant> const&) () from /usr/lib64/qt4/libQtCore.so.4
#3  0x00007ffff5d2004c in QConfFileSettingsPrivate::syncConfFile(int) () from /usr/lib64/qt4/libQtCore.so.4
#4  0x00007ffff5d20221 in QConfFileSettingsPrivate::sync() () from /usr/lib64/qt4/libQtCore.so.4
#5  0x00007ffff5d16d32 in QSettings::~QSettings() () from /usr/lib64/qt4/libQtCore.so.4
#6  0x00007ffff5d16d9d in QSettings::~QSettings() () from /usr/lib64/qt4/libQtCore.so.4
#7  0x00007ffff5442942 in _M_release (this=0x555560bc8290) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/bits/shared_ptr_base.h:147
#8  __base_dtor (this=0x55555aff3bf8) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/bits/shared_ptr_base.h:558
#9  __base_dtor (this=0x55555aff3bf0) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/bits/shared_ptr_base.h:813
#10 __base_dtor (this=0x55555aff3bf0) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/bits/shared_ptr.h:93
#11 qMetaTypeDeleteHelper<std::shared_ptr<QSettings> >(std::shared_ptr<QSettings>*) [clone .local.676] (t=0x55555aff3bf0) at /usr/include/qt4/QtCore/qmetatype.h:134
#12 0x00007ffff5d71af2 in QMetaType::destroy(int, void*) () from /usr/lib64/qt4/libQtCore.so.4
#13 0x00007ffff5d779bc in QMetaCallEvent::~QMetaCallEvent() () from /usr/lib64/qt4/libQtCore.so.4
#14 0x00007ffff5d77a4d in QMetaCallEvent::~QMetaCallEvent() () from /usr/lib64/qt4/libQtCore.so.4
#15 0x00007ffff5d67422 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib64/qt4/libQtCore.so.4
#16 0x00007ffff5d9be37 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () from /usr/lib64/qt4/libQtCore.so.4
#17 0x00007ffff3380fb5 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#18 0x00007ffff3381318 in ?? () from /usr/lib64/libglib-2.0.so.0
#19 0x00007ffff338140c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#20 0x00007ffff5d9c026 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#21 0x00007ffff6bc9356 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtGui.so.4
#22 0x00007ffff5d6142f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#23 0x00007ffff5d617a8 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#24 0x00007ffff5d68638 in QCoreApplication::exec() () from /usr/lib64/qt4/libQtCore.so.4
#25 0x000055555558ea95 in main (argc=1, argv=0x7fffffffd268) at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/main.cpp:40

(gdb) bt
#0  0x00007ffff5c3c215 in QByteArray::toLongLong(bool*, int) const () from /usr/lib64/qt4/libQtCore.so.4
#1  0x00007ffff5c3c31d in QByteArray::toInt(bool*, int) const () from /usr/lib64/qt4/libQtCore.so.4
#2  0x00007ffff5d16299 in QSettingsPrivate::iniUnescapedKey(QByteArray const&, int, int, QString&) () from /usr/lib64/qt4/libQtCore.so.4
#3  0x00007ffff5d1c961 in QConfFileSettingsPrivate::readIniSection(QSettingsKey const&, QByteArray const&, QMap<QSettingsKey, QVariant>*, QTextCodec*) ()
   from /usr/lib64/qt4/libQtCore.so.4
#4  0x00007ffff5d1d80f in QConfFileSettingsPrivate::ensureAllSectionsParsed(QConfFile*) const () from /usr/lib64/qt4/libQtCore.so.4
#5  0x00007ffff5d1fa1d in QConfFileSettingsPrivate::syncConfFile(int) () from /usr/lib64/qt4/libQtCore.so.4
#6  0x00007ffff5d20221 in QConfFileSettingsPrivate::sync() () from /usr/lib64/qt4/libQtCore.so.4
#7  0x00007ffff5d16d32 in QSettings::~QSettings() () from /usr/lib64/qt4/libQtCore.so.4
#8  0x00007ffff5d16d9d in QSettings::~QSettings() () from /usr/lib64/qt4/libQtCore.so.4
#9  0x00007ffff5442942 in _M_release (this=0x55555b243f20) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/bits/shared_ptr_base.h:147
#10 __base_dtor (this=0x55555e6532d8) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/bits/shared_ptr_base.h:558
#11 __base_dtor (this=0x55555e6532d0) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/bits/shared_ptr_base.h:813
#12 __base_dtor (this=0x55555e6532d0) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/bits/shared_ptr.h:93
#13 qMetaTypeDeleteHelper<std::shared_ptr<QSettings> >(std::shared_ptr<QSettings>*) [clone .local.676] (t=0x55555e6532d0) at /usr/include/qt4/QtCore/qmetatype.h:134
#14 0x00007ffff5d71af2 in QMetaType::destroy(int, void*) () from /usr/lib64/qt4/libQtCore.so.4
#15 0x00007ffff5d779bc in QMetaCallEvent::~QMetaCallEvent() () from /usr/lib64/qt4/libQtCore.so.4
#16 0x00007ffff5d77a4d in QMetaCallEvent::~QMetaCallEvent() () from /usr/lib64/qt4/libQtCore.so.4
#17 0x00007ffff5d67422 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib64/qt4/libQtCore.so.4
#18 0x00007ffff5d9be37 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () from /usr/lib64/qt4/libQtCore.so.4
#19 0x00007ffff3380fb5 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#20 0x00007ffff3381318 in ?? () from /usr/lib64/libglib-2.0.so.0
#21 0x00007ffff338140c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#22 0x00007ffff5d9c026 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#23 0x00007ffff6bc9356 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtGui.so.4
#24 0x00007ffff5d6142f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#25 0x00007ffff5d617a8 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#26 0x00007ffff5d68638 in QCoreApplication::exec() () from /usr/lib64/qt4/libQtCore.so.4
#27 0x000055555558ea95 in main (argc=1, argv=0x7fffffffd268) at /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/main.cpp:40

Если большего не выжать, то, наверно, можно закрыть.

#12 Updated by 0xd34df00d about 5 years ago

  • Status changed from Resolved to Assigned
  • % Done changed from 100 to 80
  • Estimated time changed from 7.00 h to 9.00 h

Да, ещё выжать можно.

#13 Updated by 0xd34df00d about 5 years ago

  • Status changed from Assigned to Resolved
  • % Done changed from 80 to 100

Applied in changeset main|commit:ab6ff774c633ca2609177f61e8d06ae19026b916.

#14 Updated by Mellon about 5 years ago

  • Status changed from Resolved to Closed

Благодарю, исправлено.

Also available in: Atom PDF