Announcement

Collapse
No announcement yet.

A Quick Benchmark Of Mozilla Firefox With WebRender Beta vs. Chrome

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #71
    Originally posted by Weasel View Post
    Yeah because "inlining" has so much to do with the language (front-end) rather than the back-end of a compiler. Probably Rust can also optimize instruction scheduling better, cause that makes sense. Ask any Rust fanboy and he'll tell you Rust can make you a sandwich too.

    Rust's checks are NOT only at compile time, because any C/C++ compiler worth its salt today will WARN you about compile-time out-of-bounds accesses that it can prove (at compile time) are out of bounds. Derp.
    Whatever, that doesn't change the fact that Rust is comparable in speed to C/C++ and sometimes faster. I'm not asking you to take my word, just do yourself a favor and google some benchmarks like this one or this one.

    Comment


    • #72
      Originally posted by Weasel View Post
      "Best practise C++" is what I called incompetent++, only for incompetent morons who need "runtime safety checks" because they're too incompetent so they make everyone's CPUs (users) process more crap and waste more energy globally.
      I'm pretty sure this idea that competent people never makes any mistakes leads to a lot of bugs.

      Originally posted by Weasel View Post
      And no, most best practices of C++ these days are far from zero overhead. Bounds checks is just one of them. Some also tell you to use signed int everywhere, which generates pathetic code when trying to divide by constants compared to unsigned (even when you divide by power of 2!), unless compiler can prove that the number is strictly positive. Tell me more about "zero overhead" dreamland.
      Because people don't use signed integers in C.
      Last edited by LinAGKar; 29 October 2018, 04:51 AM.

      Comment


      • #73
        Originally posted by LinAGKar View Post
        I'm pretty sure this idea that competent people never makes any mistakes leads to a lot of bugs.
        I never claimed they don't make bugs. Besides, these kind of bugs need to have assertions for debug builds, not runtime checks on release builds.

        If your software is truly critical (e.g. security library) then get proper audits.

        xkcd is always relevant.

        Yes, on average software devs are much more incompetent than any other industry -- and that is because they are sheltered by idiots who bring up "best practices" and don't do proper audits and so on. People learn from mistakes. Shelter them with stupid failsafe automatic language checks, and they'll never learn.

        Originally posted by LinAGKar View Post
        Because people don't use signed integers in C.
        No, but it's the C++ committee members who spread that mantra, hence the "best practice" part (they also regret size_t being unsigned, which is a C thing so... yeah... at least C was designed sanely).

        Comment


        • #74
          However in real-world usage Chrome (and Opera) stutters and scroll lags on complex pages while Firefox, Safari, and Edge are butter smooth. It doesn't matter If you have an RTX 2080 Ti and a 9900K at 5.0 GHz.
          Last edited by Monstieur; 30 October 2018, 04:36 AM.

          Comment


          • #75
            I used the four performance benchmarks at browserbench.org to compare Firefox 57 (their big speed boost release) with whatever version of Chrome was out at the time, and Firefox did really well. It was within 20% of Chrome on two of the benchmarks, lost badly in a third, and won big in the fourth. Unfortunately I didn't record the numbers anywhere permanent and I'm too lazy to load up Chrome 63 (or whatever it was) and Firefox 57 to measure again.

            Between then and now I think there have been performance regressions in Firefox and improvements in Chrome, because on the same hardware Chrome 70 demolishes Firefox 65, with or without WebRender enabled. Firefox 65 is within 10% of Chrome 70 in the Speedometer benchmark - which admittedly is probably the closest to a real usage speed test. In the MotionMark test it's 40% slower, which is disappointing because Firefox 57 beat Chrome in that one. In the others Firefox loses terribly.

            Originally posted by Weasel View Post
            Yes, on average software devs are much more incompetent than any other industry -- and that is because they are sheltered by idiots who bring up "best practices" and don't do proper audits and so on. People learn from mistakes. Shelter them with stupid failsafe automatic language checks, and they'll never learn.
            Then why not write everything in assembly? Who needs all that C and C++ nonsense overhead. Just work raw, all those those stupid failsafe automatic language checks in C++ are a waste.

            Right?

            Every argument you can apply for C++ over Java or Rust or anything with more builtin safety features will apply to assembly over C++.

            Comment


            • #76
              Originally posted by msotirov View Post
              Whatever, that doesn't change the fact that Rust is comparable in speed to C/C++ and sometimes faster. I'm not asking you to take my word, just do yourself a favor and google some benchmarks like this one or this one.
              For more real-world, compare Rust to C++ here: https://www.techempower.com/benchmar...=json&l=h79f5q
              In the six TechEmpower web server benchmarks, Rust beats C++ in JSON serialization, multiple queries, and plain text and is at 67% of the best C++ offering in single-query, is at 57.8% of the best C++ offering in fortunes, is at 94.9% of the best C++ offering in updates. Not too shabby.

              Oh, and don't tell the C++ fanboys but Java beats C++ (and Rust too) in four of the six benchmarks.

              Comment


              • #77
                Originally posted by Michael_S View Post
                Between then and now I think there have been performance regressions in Firefox and improvements in Chrome, because on the same hardware Chrome 70 demolishes Firefox 65, with or without WebRender enabled. Firefox 65 is within 10% of Chrome 70 in the Speedometer benchmark - which admittedly is probably the closest to a real usage speed test. In the MotionMark test it's 40% slower, which is disappointing because Firefox 57 beat Chrome in that one. In the others Firefox loses terribly.
                I don't understand why anyone touts browser benchmark results to end users. A browser is a UX first product where input latency and scrolling smoothness are of paramount importance. Chrome scroll lags on all existing hardware, while other browsers are smooth. Everything else is irrelevant.

                Originally posted by Michael_S View Post
                Oh, and don't tell the C++ fanboys but Java beats C++ (and Rust too) in four of the six benchmarks.
                When the user touches a Java application, it lags and stutters. That's an automatic fail. Everything else is irrelevant. Users don't care about garbage collection and other implementation details.

                Comment


                • #78
                  Originally posted by Michael_S View Post
                  Then why not write everything in assembly? Who needs all that C and C++ nonsense overhead. Just work raw, all those those stupid failsafe automatic language checks in C++ are a waste.
                  No point answering a question to someone who doesn't know the different between runtime checks and compile-time checks.

                  Originally posted by Michael_S View Post
                  Right?
                  No.

                  Nobody cares about compilation times (compile-time checks) but you.

                  Originally posted by Michael_S View Post
                  Every argument you can apply for C++ over Java or Rust or anything with more builtin safety features will apply to assembly over C++.
                  Wrong. Most (all?) C language features have zero "protection" overhead, literally. A language can add all the features it wants, as long as the output is not affected. Literally.

                  Static typing doesn't affect it in the least. You can do 1 million static casts and they won't generate even a single instruction. (sometimes casting DOES generate an extra instruction but in that case it performs an operation, a sign extension, or float<->int conversion, whatever -- if you wrote it in assembly, you'd have to do it also, it's not EXTRA POINTLESS OVERHEAD)

                  C++ might have bound checks but those are in the standard library, not part of the language itself. The things that C++ adds bloat with is in stuff like dynamic_cast, since those are part of the language instead of a library.

                  Nobody forces you to use the standard library. The C library is even more sane, I mean it's like a normal library with normal APIs. Nothing tied to the language.

                  Comment


                  • #79
                    Originally posted by Michael_S View Post
                    For more real-world, compare Rust to C++ here: https://www.techempower.com/benchmar...=json&l=h79f5q
                    In the six TechEmpower web server benchmarks, Rust beats C++ in JSON serialization, multiple queries, and plain text and is at 67% of the best C++ offering in single-query, is at 57.8% of the best C++ offering in fortunes, is at 94.9% of the best C++ offering in updates. Not too shabby.

                    Oh, and don't tell the C++ fanboys but Java beats C++ (and Rust too) in four of the six benchmarks.
                    Nobody gives a shit about the crappy web frameworks they picked or who wrote them.

                    I can write a bubble sort in Rust and it will perform much worse than Python using quicksort. That must be proof that Rust is slower than Python.

                    Comment


                    • #80
                      Originally posted by Weasel View Post
                      Nobody gives a shit about the crappy web frameworks they picked or who wrote them.

                      I can write a bubble sort in Rust and it will perform much worse than Python using quicksort. That must be proof that Rust is slower than Python.
                      They let anyone who wants to submit an entry in any language with or without frameworks in a pull request. So they didn't pick anything. That's why in the same selection you picked there is a C++ entry that has 1.1% the speed of the C++ leader. And these periodic contests have been going on for years, so it's not like the C++ community hasn't had time to do better.

                      Now justify why the fortunes benchmark where C++ wins is the 'realistic' option and all of the ones where Java or Rust leads are not.

                      Comment

                      Working...
                      X