GUI update overhead when selecting parent in coin control #7108

issue Infernoman opened this issue on November 26, 2015
  1. Infernoman commented at 10:51 PM on November 26, 2015: none

    When selecting a parent in coin control tree mode. updateLabels is called for every child. Unlike when using select/deselect all. updateLabels is only called once. I am trying to figure this out on my own, but any guidance toward making the changes and pull request would be great.

    During the time that updateLabels is being continuously called. The length of each loop increases, and it keeps the QT in a locked state while doing so. Causing an increased cpu usage. And for some users with lower end pc's, a crash. Heres a log with some timers on the functions. selecting 300 inputs at a time. http://pastebin.com/SQtJidHy

  2. fanquake commented at 3:58 AM on November 27, 2015: member

    Except from the PasteBin link:

    2015-11-27 00:56:14 CoinControlDialog::updateLabels() - Time elapsed: 0.188000
    2015-11-27 00:56:14 CoinControlDialog::viewItemChanged() - Time elapsed: 0.188000
    
    2015-11-27 00:56:15 CoinControlDialog::updateLabels() - Time elapsed: 0.187000
    2015-11-27 00:56:15 CoinControlDialog::viewItemChanged() - Time elapsed: 0.187000
    
    2015-11-27 00:56:15 CoinControlDialog::updateLabels() - Time elapsed: 0.186000
    2015-11-27 00:56:15 CoinControlDialog::viewItemChanged() - Time elapsed: 0.187000
    
    2015-11-27 00:56:15 CoinControlDialog::updateLabels() - Time elapsed: 0.185000
    2015-11-27 00:56:15 CoinControlDialog::viewItemChanged() - Time elapsed: 0.186000
    
    2015-11-27 00:56:15 CoinControlDialog::updateLabels() - Time elapsed: 0.185000
    2015-11-27 00:56:15 CoinControlDialog::viewItemChanged() - Time elapsed: 0.185000
    
    2015-11-27 00:56:15 CoinControlDialog::updateLabels() - Time elapsed: 0.189000
    2015-11-27 00:56:15 CoinControlDialog::viewItemChanged() - Time elapsed: 0.190000
    
    2015-11-27 00:56:16 CoinControlDialog::updateLabels() - Time elapsed: 0.186000
    2015-11-27 00:56:16 CoinControlDialog::viewItemChanged() - Time elapsed: 0.186000
    
    2015-11-27 00:56:16 CoinControlDialog::updateLabels() - Time elapsed: 0.189000
    2015-11-27 00:56:16 CoinControlDialog::viewItemChanged() - Time elapsed: 0.189000
    
    2015-11-27 00:56:16 CoinControlDialog::updateLabels() - Time elapsed: 0.187000
    2015-11-27 00:56:16 CoinControlDialog::viewItemChanged() - Time elapsed: 0.188000
    
    2015-11-27 00:56:16 CoinControlDialog::updateLabels() - Time elapsed: 0.186000
    2015-11-27 00:56:16 CoinControlDialog::viewItemChanged() - Time elapsed: 0.186000
    
    2015-11-27 00:56:16 CoinControlDialog::viewItemChanged() - Time elapsed: 0.000000
    
    2015-11-27 00:56:16 CoinControlDialog::viewItemChanged() - Time elapsed: 57.793000
    
  3. Infernoman commented at 4:02 AM on November 27, 2015: none

    scroll up to the top of the pastebin where the loop started. 2015-11-27 00:54:49 CoinControlDialog::updateLabels() - Time elapsed: 0.001000 2015-11-27 00:54:49 CoinControlDialog::viewItemChanged() - Time elapsed: 0.001000 also when the number of inputs hits 500+ the delay starts to increase again. I'll create another pastebin for reference, that is a bit better displayed. with a total of 1679 tx's. once it finally completes... EDIT: http://pastebin.com/9M5h1c6n

  4. jonasschnelli added the label Bug on Nov 27, 2015
  5. jonasschnelli added the label GUI on Nov 27, 2015
  6. laanwj renamed this:
    Coin control parent.
    GUI update overhead when selecting parent in coin control
    on Nov 27, 2015
  7. laanwj added the label Resource usage on Feb 19, 2016
  8. laanwj removed the label Bug on Feb 19, 2016
  9. MarcoFalke commented at 8:28 PM on April 24, 2020: member

    Is this still an issue with a recent version of Bitcoin Core? If yes, what are the steps to reproduce?

    I tried with 3000 inputs and it took 3 seconds.

    Screenshot from 2020-04-24 16-27-26

  10. MarcoFalke closed this on Apr 24, 2020

  11. DrahtBot locked this on Feb 15, 2022

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-21 18:15 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me