[Unison-hackers] Performance of the OSX GUI?

Jerome Vouillon Jerome.Vouillon at pps.jussieu.fr
Sun Jan 10 11:21:17 EST 2010


I have some concerns regarding the performance of the OSX GUI.
Indeed, method reloadTable in file MyController.m is invoked very
often during synchronization.  This method eventually invokes the
NSTableView method reloadData, which forces redraw of all the visible
portion of the NSTableView.  The GTK UI was doing something similar
and the performance hit was fairly high.

Also, here is what the documentation says:

   This method forces redraw of all the visible cells in the
   receiver. If you want to update the value in a single cell, column,
   or row, it is more efficient to use frameOfCellAtColumn:row:,
   rectOfColumn:, or rectOfRow: in conjunction with
   setNeedsDisplayInRect: (NSView). If you just want to update the
   scroller, use noteNumberOfRowsChanged; if the height of a set of
   rows changes, use noteHeightOfRowsWithIndexesChanged:.

A good way to test whether this is an issue or not is by putting a
directory "foo" with a lot of small files at toplevel on one replica
and an empty directory of the same name on the other replica (the two
replicas should be local).  The GUI should not take much longer to
synchronize this directory than the text UI (accurate start and finish
time of the synchronization can be found in the unison log).  Can
someone give it a try?

-- Jerome


More information about the Unison-hackers mailing list