Rust Coreutils 0.0.28 Delivers Better Performance & Increased Compatibility

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • phoronix
    Administrator
    • Jan 2007
    • 67102

    Rust Coreutils 0.0.28 Delivers Better Performance & Increased Compatibility

    Phoronix: Rust Coreutils 0.0.28 Delivers Better Performance & Increased Compatibility

    Rust Coreutils 0.0.28 "uutils" has been released for this implementation of the GNU Coreutils utilities within the Rust programming language for better memory safety and greater robustness. With the Rust Coreutils 0.0.28 there is increased GNU compatibility as well as better performance...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite
  • Quackdoc
    Senior Member
    • Oct 2020
    • 4976

    #2
    really hope one day they expand uutils to cover most of the busybox suite and wrap all the uutils into one binary. It would be cool to see how a real rust busybox would look like.

    Comment

    • Gamer1227
      Phoronix Member
      • Mar 2024
      • 58

      #3
      Originally posted by Quackdoc View Post
      really hope one day they expand uutils to cover most of the busybox suite and wrap all the uutils into one binary. It would be cool to see how a real rust busybox would look like.
      The point of busybox is to have small binary size, uutils need heavy optimizations to compete with coreutils, wich will bloat the binary.

      You cant have both in 1 binary, at best the developers could use conditional compilation to remove optimized paths in the final binary, to create a light version.

      Comment

      • rmfx
        Senior Member
        • Jan 2019
        • 735

        #4
        How does uutils coreutils compares
        to gnu coreutils in terms of perfs?
        are there reliable benchmarks available?

        Comment

        • Quackdoc
          Senior Member
          • Oct 2020
          • 4976

          #5
          Originally posted by Gamer1227 View Post

          The point of busybox is to have small binary size, uutils need heavy optimizations to compete with coreutils, wich will bloat the binary.

          You cant have both in 1 binary, at best the developers could use conditional compilation to remove optimized paths in the final binary, to create a light version.
          This all depends on your needs. when compiling you can compile for size or for performance which has a large impact on binary size, likewise using something like fat lto can significantly lower the file size, will it compete 1:1 with busybox? probably not, but there is a good chance of it getting small enough to still be usable.

          for instance, coreutils as it stands sits at 9.2M (8.4M with strip) with release-fast and 5.7 with release-small when compiled with mold, but that's without doing any additional mucking about like compiling std. After using UPX (which is more then fine for my needs) coreutils sits at 2.4M for release-fast and 1.7M for release-small. both of these are still bigger then busybox obviously as you said, but this is still more then good enough for my needs.

          Comment

          • ahrs
            Senior Member
            • Apr 2021
            • 550

            #6
            Originally posted by Gamer1227 View Post

            The point of busybox is to have small binary size, uutils need heavy optimizations to compete with coreutils, wich will bloat the binary.

            You cant have both in 1 binary, at best the developers could use conditional compilation to remove optimized paths in the final binary, to create a light version.
            At least rust has feature flags, in theory you could compile out a lot of the features you don't need, as is common with Busybox (it's rare to see a Busybox with all of the applets compiled in and enabled in my experience).

            Comment

            • F.Ultra
              Senior Member
              • Feb 2010
              • 2030

              #7
              Originally posted by rmfx View Post
              How does uutils coreutils compares
              to gnu coreutils in terms of perfs?
              are there reliable benchmarks available?
              perhaps we should wait until the remaining 94 tests are not failing before we even think about performance

              Comment

              • rmfx
                Senior Member
                • Jan 2019
                • 735

                #8
                Originally posted by F.Ultra View Post

                perhaps we should wait until the remaining 94 tests are not failing before we even think about performance
                Ok then first perf comparisons in 5 years then.

                You don’t need full compliance to start a benchmark. The failing cases are for peculiar cases.
                Last edited by rmfx; 18 November 2024, 02:47 AM.

                Comment

                • Nth_man
                  Senior Member
                  • Nov 2012
                  • 1013

                  #9
                  "The non-GPL licensing makes this a disaster. Please don't contribute to this project"
                  -- Upvoted 44 times at least: https://www.phoronix.com/forums/foru...74#post1398174

                  Comment

                  • F.Ultra
                    Senior Member
                    • Feb 2010
                    • 2030

                    #10
                    Originally posted by rmfx View Post

                    Ok then first perf comparisons in 5 years then.

                    You don’t need full compliance to start a benchmark. The failing cases are for peculiar cases.
                    ofc you need that, or else you are benchmarking code with different feature sets. And 94 failed tests does not sound like fringe cases, but then I have not looked further into it than that so you could be right.

                    Comment

                    Working...
                    X