I compiled lyx with -pg in order to do some profiling what I do is the following 1. start lyx 2. insert 5x5 table 3a. click left mouse button and keep it pressed for ca 5 secs 3b. do the same for ca 25 secs
I only keep the mouse button pressed. I don't move the mouse. I don't touch the keyboard. What I think happens is that while I keep the mouse button pressed the tabular is being constantly redrawn. One can in fact see the cursor flickering. For some profiling results see below. What do the people who are in the know say? Thanks, Ed. First some results for 3a then for 3b: gprof ./src/lyx gmon.out | grep LyXTab Flat profile: Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls us/call us/call name 0.00 0.11 0.00 691777 0.00 0.00 LyXTabular::column_of_cell(int) const 0.00 0.11 0.00 554501 0.00 0.00 LyXTabular::row_of_cell(int) const 0.00 0.11 0.00 204580 0.00 0.00 LyXTabular::right_column_of_cell(int) const 0.00 0.11 0.00 122419 0.00 0.00 LyXTabular::IsMultiColumn(int, bool) const 0.00 0.11 0.00 122269 0.00 0.00 LyXTabular::cellinfo_of_cell(int) const 0.00 0.11 0.00 82293 0.00 0.00 LyXTabular::RightLine(int, bool) const 0.00 0.11 0.00 51593 0.00 0.00 LyXTabular::GetCellInset(int) const 0.00 0.11 0.00 50025 0.00 0.00 LyXTabular::IsPartOfMultiColumn(int, int) const 0.00 0.11 0.00 49976 0.00 0.00 LyXTabular::GetWidthOfCell(int) const 0.00 0.11 0.00 46690 0.00 0.00 LyXTabular::GetDescentOfRow(int) const 0.00 0.11 0.00 45496 0.00 0.00 LyXTabular::GetAscentOfRow(int) const 0.00 0.11 0.00 40075 0.00 0.00 LyXTabular::GetPWidth(int) const 0.00 0.11 0.00 40000 0.00 0.00 LyXTabular::SetWidthOfCell(int, int) 0.00 0.11 0.00 33510 0.00 0.00 LyXTabular::GetWidthOfColumn(int) const 0.00 0.11 0.00 28328 0.00 0.00 LyXTabular::GetAdditionalWidth(int) const Then some results from 3b: idem % cumulative self self total time seconds seconds calls us/call us/call name 8.33 0.03 0.01 753391 0.01 0.01 LyXTabular::IsMultiColumn(int, bool) const 0.00 0.12 0.00 4261099 0.00 0.00 LyXTabular::column_of_cell(int) const 0.00 0.12 0.00 3416557 0.00 0.00 LyXTabular::row_of_cell(int) const 0.00 0.12 0.00 1260324 0.00 0.00 LyXTabular::right_column_of_cell(int) const 0.00 0.12 0.00 753241 0.00 0.00 LyXTabular::cellinfo_of_cell(int) const 0.00 0.12 0.00 507065 0.00 0.01 LyXTabular::RightLine(int, bool) const 0.00 0.12 0.00 317591 0.00 0.00 LyXTabular::GetCellInset(int) const 0.00 0.12 0.00 307775 0.00 0.00 LyXTabular::IsPartOfMultiColumn(int, int) const 0.00 0.12 0.00 307726 0.00 0.00 LyXTabular::GetWidthOfCell(int) const 0.00 0.12 0.00 287944 0.00 0.00 LyXTabular::GetDescentOfRow(int) const 0.00 0.12 0.00 280564 0.00 0.00 LyXTabular::GetAscentOfRow(int) const 0.00 0.12 0.00 246275 0.00 0.01 LyXTabular::GetPWidth(int) const 0.00 0.12 0.00 246200 0.00 0.01 LyXTabular::SetWidthOfCell(int, int) 0.00 0.12 0.00 206718 0.00 0.00 LyXTabular::GetWidthOfColumn(int) const 0.00 0.12 0.00 174730 0.00 0.01 LyXTabular::GetAdditionalWidth(int) const 0.00 0.12 0.00 73840 0.00 0.00 LyXTabular::GetAdditionalHeight(int) const 0.00 0.12 0.00 61526 0.00 0.01 LyXTabular::GetAlignment(int, bool) const 0.00 0.12 0.00 61526 0.00 0.01 LyXTabular::GetBeginningOfTextInCell(int) const 0.00 0.12 0.00 61525 0.00 0.01 LyXTabular::BottomLine(int, bool) const 0.00 0.12 0.00 61525 0.00 0.01 LyXTabular::LeftAlreadyDrawed(int) const 0.00 0.12 0.00 61525 0.00 0.01 LyXTabular::LeftLine(int, bool) const 0.00 0.12 0.00 61525 0.00 0.00 LyXTabular::TopAlreadyDrawed(int) const 0.00 0.12 0.00 61525 0.00 0.01 LyXTabular::TopLine(int, bool) const