Skip to content
Snippets Groups Projects
  • Yorhel's avatar
    0783d357
    WIP: Experimenting with a rewrite to Zig & a new data model · 0783d357
    Yorhel authored
    The new data model is supposed to solve a few problems with ncdu 1.x's
    'struct dir':
    - Reduce memory overhead,
    - Fix extremely slow counting of hard links in some scenarios
      (issue #121)
    - Add support for counting 'shared' data with other directories
      (issue #36)
    
    Quick memory usage comparison of my root directory with ~3.5 million
    files (normal / extended mode):
    
      ncdu 1.15.1:     379M / 451M
      new (unaligned): 145M / 178M
      new (aligned):   155M / 200M
    
    There's still a /lot/ of to-do's left before this is usable, however,
    and there's a bunch of issues I haven't really decided on yet, such as
    which TUI library to use.
    
    Backporting this data model to the C version of ncdu is also possible,
    but somewhat painful. Let's first see how far I get with Zig.
    0783d357
    History
    WIP: Experimenting with a rewrite to Zig & a new data model
    Yorhel authored
    The new data model is supposed to solve a few problems with ncdu 1.x's
    'struct dir':
    - Reduce memory overhead,
    - Fix extremely slow counting of hard links in some scenarios
      (issue #121)
    - Add support for counting 'shared' data with other directories
      (issue #36)
    
    Quick memory usage comparison of my root directory with ~3.5 million
    files (normal / extended mode):
    
      ncdu 1.15.1:     379M / 451M
      new (unaligned): 145M / 178M
      new (aligned):   155M / 200M
    
    There's still a /lot/ of to-do's left before this is usable, however,
    and there's a bunch of issues I haven't really decided on yet, such as
    which TUI library to use.
    
    Backporting this data model to the C version of ncdu is also possible,
    but somewhat painful. Let's first see how far I get with Zig.
main.zig 2.21 KiB