Menu

#32 Speed Improvements

2.0
closed
None
2022-02-07
2013-03-26
No
  • Change the verse search results view delegate to not render highlighting when computing size hints -- it's not needed and is only slowing it down.

  • Change the order of setWidth and setText in the delegate on both the size hint and the painter. Its current order is causing the text object to render the data twice, slowing it down.

  • Put enter/exit guards on the doHighlighting function to have it stop re-rendering changes from the cursor object while we're marking up the text.

  • Add a list view reflow delegate to the search results view so that it splits the rendering of the search results verses into blocks, releasing control back to the main process between blocks. It's only necessary that it have the the content rendered for what is actually on the screen, not the entire thing. For search results that aren't scrolled into view yet, it can work on "in the background" so they become available as you scroll.

  • Optimize the DenormalizeIndex() code since it has the highest number of calls, on the order of hundreds of millions per search.

Discussion

  • Donna Whisnant

    Donna Whisnant - 2013-03-30
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -6,3 +6,5 @@
    
     - Add a list view reflow delegate to the search results view so that it splits the rendering of the search results verses into blocks, releasing control back to the main process between blocks. It's only necessary that it have the the content rendered for what is actually on the screen, not the entire thing. For search results that aren't scrolled into view yet, it can work on "in the background" so they become available as you scroll.
    
    +- Optimize the DenormalizeIndex() code since it has the highest number of calls, on the order of hundreds of millions per search.
    +
    
     
  • Donna Whisnant

    Donna Whisnant - 2013-03-30

    Checkin Revision #283 : Completed the first two in the VerseListDelegate -- not doing highlighting when computing size hints and switching the order of setting the width and setting the text.

     
  • Donna Whisnant

    Donna Whisnant - 2013-03-30

    Revision #285 : Added beginEditBlock()/endEditBlock() calls to CPhraseNavigator::doHighlighting()
    Revision #286 : Added beginEditBlock()/endEditBlock() calls to CPhraseNavigator::getSelectedPhrase(), CPhraseNavigator::removeAnchors(), CPhraseNavigator::selectWords(), and CParsedPhrase()::insertCompletion()

    Tried adding it to CParsedPhrase::ParsePhrase Left/Right cursors, but that caused an infinite loop crash.

     
  • Donna Whisnant

    Donna Whisnant - 2022-02-07

    Biggest optimization was May 27, 2013 with the reflow delegate in 5fffa14d05106dd2075420cadcbfb74f9f1d0fa9 and following.

     
  • Donna Whisnant

    Donna Whisnant - 2022-02-07
    • status: open --> closed
     
  • Donna Whisnant

    Donna Whisnant - 2022-02-07

    Biggest optimization was May 27, 2013 with the reflow delegate in 5fffa14d05106dd2075420cadcbfb74f9f1d0fa9 and following.

     

Log in to post a comment.