as-tree icon indicating copy to clipboard operation
as-tree copied to clipboard

Difference with `tree`

Open donbex opened this issue 5 years ago • 2 comments

It would be interesting to include in the README any differences between as-tree and tree -C --fromfile ., since tree is already packaged by many (most?) distributions. The only one immediately apparent to me is a slight performance gain:

$ wc -l ls.list
84758 ls.list

$ hyperfine --warmup 3 'cat ls.list | tree -C --fromfile .' 'cat ls.list | as-tree'
Benchmark #1: cat ls.list | tree -C --fromfile .
  Time (mean ± σ):     571.0 ms ±   5.6 ms    [User: 571.4 ms, System: 32.9 ms]
  Range (min … max):   562.2 ms … 580.9 ms    10 runs

Benchmark #2: cat ls.list | as-tree
  Time (mean ± σ):     454.3 ms ±   7.8 ms    [User: 349.1 ms, System: 131.4 ms]
  Range (min … max):   443.1 ms … 471.9 ms    10 runs

Summary
  'cat ls.list | as-tree' ran
    1.26 ± 0.02 times faster than 'cat ls.list | tree -C --fromfile .'

donbex avatar Jul 27 '20 01:07 donbex

tree --fromfile does require tree v1.8.0 for what it's worth; some LTS distros still have older versions.
and while the manpage doesn't say so, the changes file stated the option is/was experimental.

http://mama.indstate.edu/users/ice/tree/changes.html

Version 1.8.0 (11/16/2018)

Added an experimental --fromfile option (suggested by several people.) This may eventually be replaced or supplimented by a --fromjson option.

justsh avatar Aug 26 '20 00:08 justsh

There are also similar projects:

  • https://github.com/grawity/code/blob/master/misc/treeify packaged in the official Arch repositories as treeify
  • https://github.com/dzamlo/treeify which also has the treeify name, and is in the AUR

desbma avatar Aug 08 '21 22:08 desbma