• M
    gitk: Turn off undo manager in the text widget · 106a6d9d
    Markus Hitter 提交于
    The diff text widget is read-only, so there's zero point in
    building an undo stack. This change reduces memory consumption of
    this widget by about 95%.
    
    Memory usage of the whole program for viewing a reference commit
    before; 579'692'744 bytes, after: 32'724'446 bytes.
    
    Test procedure:
    
     - Choose a largish commit and check it out. In this case one with
       90'802 lines, 5'006'902 bytes.
    
     - Have a Tcl version with memory debugging enabled. This is,
       build one with --enable-symbols=mem passed to configure.
    
     - Instrument Gitk to regularly show a memory dump. E.g. by adding
       these code lines at the very bottom:
    
         proc memDump {} {
             catch {
                 set output [memory info]
                 puts $output
             }
    
             after 3000 memDump
         }
    
         memDump
    
     - Start Gitk, it'll load this largish commit into the diff text
       field automatically (because it's the current commit).
    
     - Wait until memory consumption levels out and note the numbers.
    
    Note that the numbers reported by [memory info] are much smaller
    than the ones reported in 'top' (1.75 GB vs. 105 MB in this case),
    likely due to all the instrumentation coming with the debug
    version of Tcl.
    Signed-off-by: NMarkus Hitter <mah@jump-ing.de>
    Signed-off-by: NPaul Mackerras <paulus@ozlabs.org>
    106a6d9d
gitk 343.3 KB