• V0ldek@awful.systems
    link
    fedilink
    English
    arrow-up
    11
    ·
    edit-2
    7 hours ago

    This is a really weird comment. Assembly is not faster than C, that’s a nonsensical statement, C compiles down to assembly. LLVM’s optimizations will most likely outperform or directly match whatever hand-crafted assembly you write. Why would BEQ 1000 be “considerably faster” than if (x == y) goto L_1000;? This collapses even further if you consider any application larger than a few hundred lines of code, any sensible compiler is going to beat you on optimizations if you try to write hand-crafted assembly. Try loading up assembly code and manually performing intraprocedural optimizations, lol, there’s a reason every compiled language goes through an intermediate representation.

    Saying that C# is slower than C is also nonsensical, especially now that C# has built-in PGO it’s very likely it could outperform an application written in C. C#'s JIT compiler is not somehow slower because it’s flexible in terms of hardware, if anything that’s what makes it fast. For example you can write a vectorized loop that will be JIT-compiled to the ideal fastest instruction set available on the CPU running the program, whereas in C or assembly you’d have to manually write a version for each. There’s no reason to think that manual implementation would be faster than what the JIT comes up with at runtime, though, especially with PGO.

    It’s kinda like you’re saying that a V12 engine is faster than a Ferrari and that they are both faster than a spaceship because the spaceship doesn’t have wheels.

    I know you’re trying to explain this to a non-technical person but what you said is so terribly misleading I cannot see educational value in it.

    • justOnePersistentKbinPlease@fedia.io
      link
      fedilink
      arrow-up
      1
      arrow-down
      1
      ·
      6 hours ago

      I have have crafted assembly instructions and have made it faster than the same C code.

      Particular to if statements, C will do things push and pull values from the stack which takes a small but occasionally noticeable amount of cycles.

      • khalid_salad@awful.systems
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        2 hours ago

        python, what are you doing?"

        idk, I’m written in C, it does things push and pull values from the stack, have you tried assembly, it’s faster