Tk Source Code

Ticket Change Details
Login
Overview

Artifact ID: 29bfb59340d07de5532286add5c31f8dc1ca684c122f1723a210516da8b4db66
Ticket: 06f3922f8b89d455d589544d1008e6d8f48c6f49
High CPU usage
User & Date: marc_culler 2019-04-16 21:07:21
Changes

  1. icomment:
    @nab -- OK.  I looked at it.  And, amazingly enough, I found something.  It turns
    out that it is not Apple's fault that [NSView drawRect] is always called with
    the full bounding rectangle of the NSView.  It is my fault.  I think I might
    have fixed that in the branch
    [https://core.tcl.tk/tk/timeline?r=bug-06f3922f8b|bug-06f3922f8b].
    
    When I removed all of the strange and unnecessary nesting from the script you
    posted in the report and simply gridded all of the buttons as children of one
    frame then I was not able to get the CPU usage much above 10% even when wildly
    moving the mouse around like no real user would ever do.  The same kind of
    crazy mouse action in a terminal window uses 5% CPU.  So I don't think we are
    going to do much better than that.  I'll attach the simplified script.
    
    WARNING: this needs a lot of testing in a lot of different situations before it
    can be merged.  We need to make sure we aren't creating new graphics artifacts.
    My first attempt would create garbage when moving canvas items quickly.  There
    could be lots of other things like that.
    
  2. login: "marc_culler"
  3. mimetype: "text/x-fossil-wiki"
  4. username: "Marc Culler"