Skip to content
  • Mike Fleetwood's avatar
    Further improve speed of PipeCapture for non-watched output (#777973) · 25780c61
    Mike Fleetwood authored and Curtis Gedak's avatar Curtis Gedak committed
    For large output a lot of time is used copying capturebuf to callerbuf
    to provide a Glib::ustring copy of the buffer for the update callback.
    However update callbacks are only used when commands are run to apply
    operations by FileSystem::execute_command() and their output is
    incrementally displayed in the UI.  Whereas update callbacks are never
    used when commands are used to query information via
    Utils::execute_command().
    
    Stop performing interim copying of capturebuf to callerbuf when there
    are no update callbacks registered as it is unnecessary.
    
    Time to read portions of the recorded fsck.fat output via
    fat16::set_used_sectors() and intermediate copies aren't required:
    
                         1 MiB     10 MiB   122 MiB
        old code :   0.074 sec   1.41 sec   210 sec [3:30]
        new code :   0.063 sec   0.56 sec     6.57 sec
    
    Bug 777973 - Segmentation fault on bad disk
    25780c61