On May 19, 2006, at 11:34 AM, Abdelrazak Younes wrote:
No, I think it would be better if you pass
--disable-debug --disable-stdlib-debug
instead of:
--enable-debug --enable-stdlib-debug
Without --enable-debug, at least, I can't get function names in the
profile.
You use case should be useful. Here is some other use case with a
big document (UserGuide or Extended):
- hold the arrow down key pressed
- hold the page down key pressed
- scroll by dragging the scrollbar slider
- scroll by holding click on the down arrow button of the scrollbar.
I'll wait on doing these until I'm sure you like the format.
I am sure the tree view is useful because this line for example
> QWorkArea::keyPressEvent(QKeyEvent*) (lyx)
> | | | | | | | | | | | | | | | | | | | | | | | + 67.0%
indicate that 67% of the time is spent on this method and its
children. But real time is most probably close to zero. Absolute
figures are more informative if you manage to produce that.
OK ... how's this (produced from the same profile, again arbitrarily
cut off near the top)?
Bennett
-------------
# Report 1 - Session 1 - Time Profile of lyx
SharkProfileViewer
# Generated from the visible portion of the outline view
+ 16807 start (lyx)
| + 16807 _start (lyx)
| | + 16807 main (lyx)
| | | + 16807 LyX::priv_exec(int&, char**) (lyx)
| | | | + 16807 lyx_gui::start(std::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&,
std::vector<std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::allocator<std::basic_string<char,
std::char_traits<char>, std::allocator<char> > > > const&) (lyx)
| | | | | + 16807 QCoreApplication::exec() (lyx)
| | | | | | + 16807 QEventLoop::exec
(QFlags<QEventLoop::ProcessEventsFlag>) (lyx)
| | | | | | | + 16807 QEventLoop::processEvents
(QFlags<QEventLoop::ProcessEventsFlag>) (lyx)
| | | | | | | | + 16807 QEventDispatcherMac::processEvents
(QFlags<QEventLoop::ProcessEventsFlag>) (lyx)
| | | | | | | | | + 14635 qt_mac_send_event
(QFlags<QEventLoop::ProcessEventsFlag>, OpaqueEventRef*,
OpaqueWindowPtr*) (lyx)
| | | | | | | | | | + 14631 SendEventToEventTarget (HIToolbox)
| | | | | | | | | | | + 14631 SendEventToEventTargetInternal
(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) (HIToolbox)
| | | | | | | | | | | | + 14628 DispatchEventToHandlers
(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) (HIToolbox)
| | | | | | | | | | | | | + 14625 ToolboxEventDispatcherHandler
(OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*) (HIToolbox)
| | | | | | | | | | | | | | + 14613 HandleKeyboardEvent
(OpaqueEventRef*, unsigned long) (HIToolbox)
| | | | | | | | | | | | | | | + 14613
SendEventToEventTargetWithOptions (HIToolbox)
| | | | | | | | | | | | | | | | + 14613 SendEventToEventTargetInternal
(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) (HIToolbox)
| | | | | | | | | | | | | | | | | + 14601 DispatchEventToHandlers
(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) (HIToolbox)
| | | | | | | | | | | | | | | | | | + 14591
QApplicationPrivate::globalEventProcessor(OpaqueEventHandlerCallRef*,
OpaqueEventRef*, void*) (lyx)
| | | | | | | | | | | | | | | | | | | + 14532 QApplication::notify
(QObject*, QEvent*) (lyx)
| | | | | | | | | | | | | | | | | | | | + 14527
QApplicationPrivate::notify_helper(QObject*, QEvent*) (lyx)
| | | | | | | | | | | | | | | | | | | | | + 14526 QWidget::event
(QEvent*) (lyx)
| | | | | | | | | | | | | | | | | | | | | | + 14525
QWorkArea::keyPressEvent(QKeyEvent*) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | + 14525
BufferView::workAreaKeyPress(boost::shared_ptr<LyXKeySym>,
key_modifier::state) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | + 14525
BufferView::Pimpl::workAreaKeyPress(boost::shared_ptr<LyXKeySym>,
key_modifier::state) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | + 14057
LyXFunc::processKeySym(boost::shared_ptr<LyXKeySym>,
key_modifier::state) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | + 14034
LyXFunc::dispatch(FuncRequest const&) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | + 8825
LCursor::dispatch(FuncRequest const&) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | + 8817
InsetBase::dispatch(LCursor&, FuncRequest&) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | + 8815
LyXText::dispatch(LCursor&, FuncRequest&) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + 7697
BufferView::Pimpl::update(Update::flags) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + 6589
LyXScreen::redraw(BufferView&, ViewMetricsInfo const&) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +
3661 paintText(BufferView const&, ViewMetricsInfo const&) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +
2629 (anonymous namespace)::paintPar(PainterInfo&, LyXText const&,
int, int, int, bool) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +
2564 (anonymous namespace)::RowPainter::paintText() (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ 2366 (anonymous namespace)::RowPainter::paintFromPos(int&) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| + 2344 (anonymous namespace)::RowPainter::paintChars(int&, LyXFont,
bool, bool) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | + 1788 QLPainter::text(int, int, std::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, LyXFont
const&) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | + 1787 QLPainter::text(int, int, char const*, unsigned long,
LyXFont const&) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | + 1675 QPainter::drawText(int, int, QString const&, int) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | + 1674 QPainter::drawText(int, int, QString const&) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | + 1673 QPainter::drawText(QPointF const&, QString const&)
(lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | + 1462 QPainter::drawTextItem(QPointF const&, QTextItem
const&) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | + 1456 QRasterPaintEngine::drawTextItem(QPointF
const&, QTextItem const&) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | + 1455 QPaintEngine::drawTextItem(QPointF const&,
QTextItem const&) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | + 876 QFontEngineMac::addOutlineToPath(double,
double, QGlyphLayout const*, int, QPainterPath*,
QFlags<QTextItem::RenderFlag>) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | + 441 ATSUGlyphGetCubicPaths (QD)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | + 337 GetQuadraticPaths(AttributeGroup*,
unsigned short, long (*)(void*), long (*)(Float32Point const*,
Float32Point const*, void*), long (*)(Float32Point const*,
Float32Point const*, Float32Point const*, void*), long (*)(void*),
void*, long*) (QD)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | + 68 PretendCubicCurveTo(Float32Point
const*, Float32Point const*, Float32Point const*, void*) (QD)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | + 52 QMacFontPath::cubicTo(Float32Point
const*, Float32Point const*, Float32Point const*, void*) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | + 52 QPainterPath::cubicTo(double,
double, double, double, double, double) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | + 52 QPainterPath::cubicTo(QPointF
const&, QPointF const&, QPointF const&) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | + 47
QVector<QPainterPath::Element>::append(QPainterPath::Element const&)
(lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | + 28
QVector<QPainterPath::Element>::realloc(int, int) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | + 21 szone_realloc
(libSystem.B.dylib)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | 6 szone_malloc
(libSystem.B.dylib)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | 4 __memcpy (commpage
[libSystem.B.dylib])
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | 3 szone_free
(libSystem.B.dylib)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | 1 __spin_lock (commpage
[libSystem.B.dylib])
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | 3 szone_size (libSystem.B.dylib)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | + 1 realloc (libSystem.B.dylib)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | + 1 szone_realloc
(libSystem.B.dylib)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | + 1 szone_malloc
(libSystem.B.dylib)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | + 1 large_and_huge_malloc
(libSystem.B.dylib)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | + 1 vm_allocate
(libSystem.B.dylib)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | + 1 CMSCalculateMD5
(libCSync.A.dylib)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | 1
mig_get_reply_port (libSystem.B.dylib)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | 1 qRealloc(void*, unsigned
long) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | 3 realloc (libSystem.B.dylib)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | + 2 QVectorData::grow(int, int,
int, bool) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | 1 qAllocMore(int, int) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | 1 dyld_stub_realloc (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | 4 QPainterPathData::maybeMoveTo()
(lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | 1 operator==(QPointF const&,
QPointF const&) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | + 2 QMacFontPath::moveTo(Float32Point
const*, void*) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | + 2 QPainterPath::moveTo(double,
double) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | + 2 QPainterPath::moveTo(QPointF
const&) (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | 1
QVector<QPainterPath::Element>::append(QPainterPath::Element const&)
(lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | 1 QPainterPath::detach() (lyx)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | + 43 GetGlyphVectorIndex (ATS)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | + 41 _eGetGlyphVectorIndex (ATS)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | + 21 TSReaderToWriter (CarbonCore)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | + 6 TSTryLockMutex (CarbonCore)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | + 3 pthread_mutex_trylock
(libSystem.B.dylib)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | 1 __spin_lock (commpage
[libSystem.B.dylib])
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | 4 TSUnlockMutex (CarbonCore)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | + 3 TSLockMutex (CarbonCore)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | + 2 pthread_mutex_lock
(libSystem.B.dylib)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | 1 __spin_lock (commpage
[libSystem.B.dylib])
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | 1 dyld_stub_pthread_mutex_lock
(CarbonCore)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | 1 dyld_stub_pthread_mutex_unlock
(CarbonCore)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | 5 AGCongruent (ATS)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | 3 GetStandardAttributeType
(AttributeGroup const*) (ATS)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | + 1 TSReleaseReader (CarbonCore)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | + 1 CompareAndSwap (CarbonCore)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | 1 OSAtomicCompareAndSwap32Barrier
(libSystem.B.dylib)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | + 1 _eGetGlyphVectorIndex (ATS)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | 1 TSAcquireReader (CarbonCore)