this post was submitted on 01 Sep 2025
125 points (97.0% liked)

Programming

22516 readers
156 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] _thebrain_@sh.itjust.works 16 points 4 days ago (2 children)

In my limited experience the speed a rust complied executable runs is highly dependent on compiler options. By default (from what I remember), rust includes a ton of debug info in the resulting program. With the correct compiler flags you can strip all that out and programs run very close to c speeds.

[–] mitchty@lemmy.sdf.org 16 points 4 days ago (2 children)

The default for cargo is debug builds why that would surprise anyone as being slower is beyond me, —release isn’t that much extra to type or alias. Do people not learn how their tools work any longer? This isn’t that far off from c/c++ where you set cflags etc to fit the final binaries purpose.

[–] FizzyOrange@programming.dev 4 points 4 days ago (1 children)

Tbf this mistake comes up so often I do wonder if cargo should have defaulted to release builds. It seems to be what beginners expect.

[–] nrab@sh.itjust.works 4 points 3 days ago (1 children)

Gcc, clang, msvc, and all the other compilers also don’t optimize by default. It’s very normal and very expected for the default build to not include optimizations

[–] FizzyOrange@programming.dev 0 points 2 days ago

Sure but you don't normally run GCC or Clang directly; you make, and that normally does optimise. I think a closer example is CMake which doesn't enable release mode by default.

MSVC is usually run from Visual Studio which makes it obvious which mode is being used so the default doesn't matter so much.

As for "all the other compilers", Go optimises by default. It does seem to be the exception though...

[–] gravitas_deficiency@sh.itjust.works 0 points 4 days ago* (last edited 4 days ago)

Yeah honestly this does smack of PEBKAC/RTFM

[–] Ephera@lemmy.ml 6 points 4 days ago

Yeah, cargo build produces a debug build and cargo build --release is for actually distributing to users. (It doesn't add the debug symbols, but also spends more time optimizing.)